我应该测量某些树操作的运行时间。 出于某种原因,当打印x或y时,我得到整数,但在尝试打印时(y-x),我得到一个非常小的数字!我得到2000而不是200,000。
long y=0;
long x=0;
for(int j=0 ; j < 1000 ; j++)
{
if(j%100==0) System.out.println(y-x);
x = System.nanoTime();
myTree.put(n, 0);
y = System.nanoTime();
}
答案 0 :(得分:0)
来自文档:
public static long nanoTime()
以纳秒的形式返回最精确的可用系统计时器的当前值。
实际上,put
等基本操作的时间似乎还可以。
但要注意 JVM热备阶段(请参阅How to avoid JVM warmup),这会改变结果。实际上,需要丢弃x和y的第一个值(这可能是为什么你首先看到x和y这么高的值然后结果很低的原因)。如果您想要准确的结果,请在对put
函数进行基准测试之前尝试进行一些计算,或者使用Caliper之类的工具来简化工作。
答案 1 :(得分:-1)