我想介绍一个小应用程序执行的某个部分。有没有办法从要分析的应用程序中触发VisualVM中的数据收集?换句话说,是否可以向配置文件应用程序添加代码,以便在命令被命中时VisualVM中的分析将自动启动?
meaninglessCode();
// How to start data collection?
com.sun.tools.visualvm.....startSampling();
//
codeToBeProfiled();
// How to stop data collection?
com.sun.tools.visualvm.....stopSampling();
//
furtherMeaninglessCode();
我目前的解决方法是Thread.sleep
调用,让我有时间按下VisualVM GUI中的按钮,但这远非令人满意。几项谷歌搜索没有取得任何成功。我很欣赏任何提示。
答案 0 :(得分:1)
您可以使用两个VisualVM设置来自定义分析会话,如this blog entry:
中所述codeToBeProfiled()
这样,当执行包含codeToBeProfiled()
的类的任何方法时,VisualVM将开始分析。