gpt4 book ai didi

java - 为什么 MicroMeter 定时器返回零?

转载 作者:行者123 更新时间:2023-12-02 01:36:26 37 4
gpt4 key购买 nike

考虑以下代码:

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));
}

两次打印的输出都是零,但当然它应该是正数。

我正在使用 globalRegistry 但我认为它不会产生影响。

最佳答案

您看到这样的结果的原因是您尚未注册具体的注册表实现。 Micrometer 的默认设置没有定义支持注册表实现。因此,您的计时器值只会被扔到地板上而不会保留。

将此行添加为 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.5

关于java - 为什么 MicroMeter 定时器返回零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55207793/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com