我正在写一个统计对象。我想用最少的信息跟踪平均值
我目前有一个方法:
public synchronized void setSuccessful(long time) {
int succCount = _successful.get(); // atomic int
_successful.incrementAndGet();
long maxTime = _maxSuccessfulTimeNano.get(); // atomic long
if (time > maxTime) {
_maxSuccessfulTimeNano.set(time);
}
long avg = ((_avgSuggessfulTimeNano.get() /* atomic long */ * succCount) + time) / (succCount + 1);
_avgSuggessfulTimeNano.set(avg);
}
有更好的方法来实现吗?或者是否有更好的统计数据来获取