首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么MicroMeter计时器返回零?

为什么MicroMeter计时器返回零?
EN

Stack Overflow用户
提问于 2019-03-17 21:53:56
回答 1查看 901关注 0票数 0

考虑以下代码:

代码语言:javascript
复制
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,但我认为这不应该有什么不同。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-17 22:31:32

您看到结果的原因是您还没有注册一个具体的Registry实现。测微计的默认设置没有定义支持注册表实现。因此,您的计时器值将被丢弃在地板上,而不会被保留。

将此行添加为main()的第一行,您将开始获得预期的行为:

代码语言:javascript
复制
Metrics.addRegistry(new SimpleMeterRegistry());

如下所示:

代码语言:javascript
复制
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));
}

它给出了结果:

代码语言:javascript
复制
100
49.5
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55207793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档