各位大大,小弟我最近在写一支程式
是针对一个 "物件阵列"做循序的条件比对,物件阵列数约莫24万个
比对的参数有8种a, b, c, d,.....h
比对方式像是这样,
先比较 物件[0].value >= a,如果是就要去做某个数值计算
再比较 物件[0].value <= b,如果是就去做另一个数值计算
最后每一组参数都会得到一个结果R,纪录起来后,再运算下一组参数
所以我写了一个循环像是以下这样
for(int a=0.4 ; a<0.9 ; a+=0.1){
for(int b=0.4 ; b<0.9 ; b+=0.1 ){
........(好几层循环)
for(int h=1.0 ; h<1.5 ; h+=0.1){
//计算完结果,写入记事本
fileWriter.write(test(物件阵列, a, b, c,..., h)+"\r\n");
}
}
}
test函数,会把物件阵列循序的提出来,进行比对,然后把结果写入记事本
最一开始做一次,大概要5~6秒的时间,但是越到后来,速度越慢,到了60几秒做一次,
我每完成一个参数比对都有把全域变量=null掉,并呼叫gc(),仅留下那个物件阵列没
释放,因为要一直对他做比对,除此之外,跑这个大量回圈比对时。
我是另外呼叫一个SwingWorker,在背景中做算算,仅仅一个,没用到多Thread,
我估狗过了,但几乎都是在讲多执行绪的问题,但我除了GUI的Thread,仅多一条而以,
请问有各位高手大大有什么想法吗...或是直接知道是怎么回事...
另外我想问 StringBuilder的问题,到现在1.8还是依旧吗?还是说有修正了?