gpt4 book ai didi

java - 使用秒表收集测试

转载 作者:行者123 更新时间:2023-11-30 07:01:32 24 4
gpt4 key购买 nike

我正在尝试测量包含 115 个项目的集合所花费的时间。我的问题是,只有在调试并使用 StopWatch.stop(); 准确设置断点时,我才能测量耗时当我正常运行测试时,StopWatch.stop 的值为 0,尽管它是一个长值。首先我认为我的集合太小,但是这个耗时应该作为长值传递。

//   times-collection will be initialised somewhere else
//---------------------------------------------------------------
for (int i=0; i<10; i++){
final StopWatch stopwatchA = new StopWatch();
final StopWatch stopwatchB = new StopWatch();
Iterator<String> iterator = times.iterator();

stopwatchA.start();
while(iterator.hasNext()){
if (iterator.next().equals("XXX")) {
break;
}
}
stopwatchA.stop();
stopwatchB.start();
for (String tzd : times) {

if (tzd.equals("XXX")) {
break;
}
}
stopwatchB.stop();

if(stopwatchA.getTime() < stopwatchB.getTime()){
System.out.println("ITERATOR IS FASTER: iterator: " + estimatedTimeIterator + " FOR-TIME: " + estimatedTimeFor);
}else if(stopwatchA.getTime() > stopwatchB.getTime()){
System.out.println("FOR IS FASTER: iterator: " + estimatedTimeIterator + " FOR-TIME: " + estimatedTimeFor);
}
}

最佳答案

标准库中的秒表在内部使用 System.currentTimeMillis()对于包含 115 个项目的集合,stopwatchA.start() 和 stopwatchA.stop() 之间的时间完全有可能少于 1 毫秒请改用 System.nanoTime()。

关于java - 使用秒表收集测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40843214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com