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

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

解决方法

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

>分析根:放入包含codetoBeProfiled()的类
>仪表过滤器:定义您自己的或保留认值

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

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...