以前写程序没有留心控制变量的生命周期,直到今天写一个多重列表循环提取数据时才领悟到控制变量的生命周期有多重要。
刚开始,随便的写了写。一运行,程序没有报错,可是硬盘咯咯咯地想起来,CPU风扇也转动了。我没有等到的程序运行完就把它结束了。
很奇怪,我只是有集合类改写了这个程序,而改之前只要一两秒就计算完了。
我仔细调试才发现原来是没有及时地释放集合类的内存,几个嵌套的集合类使循环次数成几何级数增长,已经到达要花一两小时才能算完的地步了。我将各个集合类的生命周期仔细的调整后,程序显示:
共13234条记录
运行:0.281 seconds
yeah!