我正在使用 VisualVM
来查看我的应用程序何处运行缓慢。但它并未显示所有方法,可能是因为没有显示导致应用延迟的所有方法。
我有一个实时应用程序(声音处理),并且存在几百微秒的时间不足。
VisualVM
是否会隐藏那些本身很快的方法?
更新 1
通过抽样和猜测,我找到了一个缓慢的方法。这是一个被关闭调试日志记录中调用的 toString()
方法,但它却消耗了时间。
设置
帮助我解决了问题,并且现在我知道了如何查看它:这取决于 从哪里开始分析
选项。
我此刻手头没有相关内容,但在开始分析之前,有一个默认隐藏的设置窗格可以让你输入正则表达式来过滤方法。默认情况下,它会过滤掉很多核心JDK的内容。
if (log.isDebugEnabled()) {
或类似的语句,以避免在日志调用中进行字符串连接和其他操作。 - Mattias Isegran Bergander