我想比较两个 readDataMethod() 的速度性能(如果有的话),如下所示。
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 比之前的方法更快?
最佳答案
Does this test prove that the readDataMethod2 is faster than the earlier one ?
您走在正确的轨道上,因为您正在衡量比较性能,而不是做出假设。
但是,在使用 Java 编写微基准时,有许多潜在问题需要注意。我建议你阅读 How do I write a correct micro-benchmark in Java?
关于java - 比较 Java 中使用纳米时间的方法速度性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10722195/