Исправлено, приведение к double
:
@Override
public double getAveragePutTime() {
return (double)(stopWatch.elapsedTime(TimeUnit.SECONDS)) / putCounter;
}
Почему?
Поскольку вы делите что-то вроде 10 секунд в худшем случае на 10 миллионов.С длинными и целыми числами !!
В Java (long)10 / (int)10_000_000
не даст ничего, кроме 0
.Так что просто бросьте где-нибудь двойное.
Или еще лучше, используйте более точную единицу времени:
@Override
public double getAveragePutTime() {
return (double)(stopWatch.elapsedTime(TimeUnit.NANOSECONDS)) / putCounter
}