猿问

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

请考虑以下代码:


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


慕斯王
浏览 112回答 1
1回答

蝴蝶不菲

您看到的结果的原因是您尚未注册具体的注册表实现。Micrometer 的默认设置没有定义支持注册表实现。因此,您的计时器值只是被丢弃在地板上,而不是保留。将此行添加为 main() 的第一行,您将开始获得预期的行为:Metrics.addRegistry(new SimpleMeterRegistry());这样:public static void main(String ...args) {&nbsp; &nbsp; Metrics.addRegistry(new SimpleMeterRegistry());&nbsp; &nbsp; Timer timer = Metrics.timer("item.processing");&nbsp; &nbsp; for (int i = 0; i < 100; i++) {&nbsp; &nbsp; &nbsp; &nbsp; timer.record(i, TimeUnit.SECONDS);&nbsp; &nbsp; }&nbsp; &nbsp; System.out.println(timer.count());&nbsp; &nbsp; System.out.println(timer.mean(TimeUnit.SECONDS));}它给出了结果:10049.5
随时随地看视频慕课网APP

相关分类

Java
我要回答