java - 为什么 JVM 监视器显示错误的调用计数?

标签 java profiling profiler

通过记录静态变量,我可以看到我在测试运行中调用了函数 belongsInResults() 14,000 次,但是 JVM Monitor的“调用计数”仅为 215。该函数仅在一处被调用。这是 JVM 的调用树报告,底部有 belongsInResults():

Image of call tree report :

我通过在调用 mergePrefixes 之前在单元测试中设置一个断点以及之后设置另一个断点,然后在此处开始和停止分析来生成此代码。

我也很好奇为什么“自拍时间”加起来达不到 100%。

最佳答案

探查器有两种工作方式: - 添加代码执行每个方法(检测) - 以固定间隔进行线程转储(采样)

只有第一个可以提供准确的调用计数,但开销要高得多

关于java - 为什么 JVM 监视器显示错误的调用计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32120665/

相关文章:

ruby-on-rails - 如何使用 ruby​​-prof 和 JMeter 分析 Rails

c# - 分析 .net 多线程应用程序 (Visual Studio 2008)

iphone - 我在哪里可以下载 Shark ?

java - 针对未命中 Controller 的 400 个请求返回自定义错误消息

asp.net - 分析 SQL Server 和/或 ASP.NET

java - 如何使所有这些 Swing 控件具有相同的宽度?

Java JAR 内存使用 VS 类文件内存使用

android-studio - android studio 3.0 中的 Kitkat 设备/google glass 不支持 Android profiler

java - 对 Java ArrayList 使用迭代器而不是 C 风格的循环

java - gradle的配置编译和运行时