以下のように処理時間を計測して平均をとりたいのですが、ガベージコレクタが動作して時々異常に高い値が出たりして、データが実情とそぐわないものになってしまいます。
何かよい方法がありますでしょうか?よろしくお願いします。


String stringTest;
long beforeTime[]=new long[30];
long afterTime[]=new long[30];
long average=0;
for (int i = 0; i < 30; i++) {
beforeTime[i] = System.currentTimeMillis();
for (int j = 0; j < 10000; j++) {
stringTest = ("a");
stringTest = stringTest + ("b");
stringTest.equals("");
}
afterTime[i] = System.currentTimeMillis();
}
for (int i = 0; i < 30; i++) {
System.out.println(i+":"+(afterTime[i]-beforeTime[i])+"ms");
average+=(afterTime[i]-beforeTime[i]);
}
System.out.println("平均:"+(average/30)+"ms");