gpt4 book ai didi

Java Mission Control 空格是什么意思?

转载 作者:行者123 更新时间:2023-11-30 06:48:56 25 4
gpt4 key购买 nike

我想分析我的类(class),它就像一个缓冲区,我可以在其中保存用户数据并在之后获取它。我已经创建了 main 方法并在那里无限循环地运行测试方法。

    public void test(){
buffer.add(n1);
Message message = buffer.remove();
msgSeqNum = message.getMsgSeqNum();
}

msgSeqNum 是全局变量,为了让 JVM 不删除我的调用,我做了它(我认为它可以帮助我)。

我分析了它 30 秒,但正如我所看到的,我的代码运行了大约 40 次(我预计会运行几千次)。我还看到 JMC 中的空格(请参阅 screenshot ),这表明我的 JVM 什么也没做。没有 GC、异常、外观、等待时间,我的代码运行速度非常快。

我尝试运行它几次,但我得到了相同的结果。为什么会这样?

操作系统 - 窗口

最佳答案

当对应用程序进行采样(而不是全面分析)时,分析器会以特定的时间间隔进行检查,以查看正在运行的方法。这比跟踪每个调用更简单。

这也意味着您无法获得调用计数等方面的准确结果(您可能不需要)。您可能认为该代码只运行了 40 次,但实际上这就是探查器检测到该方法正在运行的次数。虽然没有采集任何样本的一秒钟看起来确实很长一段时间,但也许采样器没有机会运行(特别是如果你有一个紧密的循环并且在低端机器上运行)。

虽然采样不会为您提供准确的调用计数,但它确实为您提供了足够的信息来确定哪些方法使用的时间和 CPU 最多,因此您可以优化代码。

关于Java Mission Control 空格是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43543525/

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