考虑以下代码:
public static void main(String[] args) {
Timer timer = Metrics.timer("item.processing");
for (int i = 0; i < 100; i++) {
timer.record(i, TimeUnit.SECONDS);
}
System.out.println(timer.count());
System.out.println(timer.mean(TimeUnit.SECONDS));
}两个print的输出都是零,但当然它应该是一个正数。
我正在使用globalRegistry,但我认为这不应该有什么不同。
发布于 2019-03-17 22:31:32
您看到结果的原因是您还没有注册一个具体的Registry实现。测微计的默认设置没有定义支持注册表实现。因此,您的计时器值将被丢弃在地板上,而不会被保留。
将此行添加为main()的第一行,您将开始获得预期的行为:
Metrics.addRegistry(new SimpleMeterRegistry());如下所示:
public static void main(String ...args) {
Metrics.addRegistry(new SimpleMeterRegistry());
Timer timer = Metrics.timer("item.processing");
for (int i = 0; i < 100; i++) {
timer.record(i, TimeUnit.SECONDS);
}
System.out.println(timer.count());
System.out.println(timer.mean(TimeUnit.SECONDS));
}它给出了结果:
100
49.5https://stackoverflow.com/questions/55207793
复制相似问题