【问题标题】:Is there a way to start or stop data collection from the profiled application?有没有办法从分析的应用程序开始或停止数据收集?
【发布时间】:2012-06-25 11:57:12
【问题描述】:

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

【问题讨论】:

  • 能否将数据采集部分隔离出来,作为自己的应用运行?
  • @jayeff OP 指的是分析数据。

标签: java profiler visualvm


【解决方案1】:

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

  • 剖析根:Put 包含 codeToBeProfiled() 的类
  • 仪器过滤器:定义您自己的值或保留默认值

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-21
    • 2019-07-11
    • 1970-01-01
    相关资源
    最近更新 更多