Я пытаюсь измерить прошедшее время коллекции с 115 элементами. Моя проблема в том, что я могу измерить прошедшее время только тогда, когда я отлаживаю и точно устанавливаю точку останова, используя StopWatch.stop();
Когда я запускаю свой обычный тест, значение StopWatch.stop
равно 0
, хотя это длинная стоимость. Сначала я думал, что моя коллекция невелика, но это прошедшее время должно быть передано как долгозначное.Тест коллекции с StopWatch
// 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);
}
}
Какой тип StopWatch вы используете? Это весна? – developer
Вы можете использовать этот «хронограф», который я написал, используя нанотим: https://github.com/marcolopes/dma/blob/master/org.dma.java/src/org/dma/java/util/Chronograph.java – marcolopes