【发布时间】:2016-11-28 11:28:06
【问题描述】:
我正在尝试测量包含 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);
}
}
【问题讨论】:
-
您使用的是哪个秒表?是春天吗?
-
你可以使用我用 nanotime 写的这个“计时码表”:github.com/marcolopes/dma/blob/master/org.dma.java/src/org/dma/…
标签: java collections stopwatch