为了账号安全,请及时绑定邮箱和手机立即绑定

为什么千分尺计时器返回零?

为什么千分尺计时器返回零?

慕斯王 2022-08-17 15:51:17
请考虑以下代码: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
查看完整描述

1 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

您看到的结果的原因是您尚未注册具体的注册表实现。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


查看完整回答
反对 回复 2022-08-17
  • 1 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信