有没有办法从配置文件应用程序启动或停止数据收集?

时间:2012-06-25 11:57:12

标签: java profiler visualvm

我想介绍一个小应用程序执行的某个部分。有没有办法从要分析的应用程序中触发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中的按钮,但这远非令人满意。几项谷歌搜索没有取得任何成功。我很欣赏任何提示。

1 个答案:

答案 0 :(得分:1)

您可以使用两个VisualVM设置来自定义分析会话,如this blog entry

中所述
  • 分析根:放置包含codeToBeProfiled()
  • 的类
  • 检测过滤器:定义您自己的或保留默认值

这样,当执行包含codeToBeProfiled()的类的任何方法时,VisualVM将开始分析。