【发布时间】:2012-12-24 20:52:02
【问题描述】:
我正在使用VisualVM 来查看我的应用程序在哪里运行缓慢。但它没有显示所有方法,可能没有显示所有延迟应用程序的方法。
我有一个实时应用程序(声音处理)并且在几百微秒内有时间不足。
VisualVM 是否有可能隐藏了本身很快的方法?
更新 1
我通过采样器和猜测发现了缓慢的方法。这是从调试日志中调用的toString() 方法,该方法已关闭,但耗时。
Settings 提供了帮助,现在我知道如何看待它了:这取决于 Start profiling from 选项。
【问题讨论】:
-
您使用的是采样器还是分析器?采样器,井采样,在定义的时间间隔。分析器更准确,但速度要慢很多。
-
调试日志应该全部用
if (log.isDebugEnabled()) {或类似名称包围,以避免在日志调用中发生字符串连接和其他事情。 -
另请参阅 blogs.oracle.com/nbprofiler/entry/… 和 blogs.oracle.com/nbprofiler/entry/… 以获取有关分析以及如何设置分析根和检测过滤器的更多信息。