/** * 开源代码,仅供学习和交流研究使用,商用请联系三丙 * 微信:mohan_88888 * 抖音:程序员三丙 * 付费课程知识星球:https://t.zsxq.com/aKtXo */ package sanbing.jcpp.infrastructure.stats; import io.micrometer.core.instrument.Timer; import lombok.Getter; import java.util.concurrent.TimeUnit; public class StatsTimer { @Getter private final String name; private final Timer timer; private int count; private long totalTime; public StatsTimer(String name, Timer micrometerTimer) { this.name = name; this.timer = micrometerTimer; } public void record(long timeMs) { count++; totalTime += timeMs; timer.record(timeMs, TimeUnit.MILLISECONDS); } public double getAvg() { if (count == 0) { return 0.0; } return (double) totalTime / count; } public void reset() { count = 0; totalTime = 0; } }