我想比较两个readDataMethod()中的速度性能(如果有的话),如下所示。比较方法使用Java中的nanotime加速性能
private void readDataMethod1(List<Integer> numbers) {
final long startTime = System.nanoTime();
for (int i = 0; i < numbers.size(); i++) {
numbers.get(i);
}
final long endTime = System.nanoTime();
System.out.println("method 1 : " + (endTime - startTime));
}
private void readDataMethod2(List<Integer> numbers) {
final long startTime = System.nanoTime();
int i = numbers.size();
while (i-- > 0) {
numbers.get(i);
}
final long endTime = System.nanoTime();
System.out.println("method 2 : " + (endTime - startTime));
}
大多数的结果我得到表明,方法2具有“低”值的时间。
Run readDataMethod1 readDataMethod2
1 636331 468876
2 638256 479269
3 637485 515455
4 716786 420756
此测试是否证明readDataMethod2比早期的更快?
感谢您指出Java中的微基准测试存在潜在的缺陷,太多程序员完全忽略了这一点;一直认为他们的结果是准确的。 –