我是初学者。我正在使用ASM来创建一个分析器。运行时的探查器也会包含jar的类名。但我只需要我的项目类的详细信息。我从
获得了代码http://www.ibm.com/developerworks/java/library/j-jip/#icomments
答案 0 :(得分:2)
您必须为要自行转换的类创建过滤器。
只需检查,例如如果类名以“com / yourcompany /”开头,则保留所有其他类。
由于您编写了一个分析器,您似乎已经创建了一个代理。此代理的转换方法还传递带有类数据的ClassLoader。我不确定,但也许您也可以使用此属性进行过滤,或者如果可能的话,检查类加载器中的资源来源。
答案 1 :(得分:1)
我尝试过VisualVM,但它对高性能应用程序不是很有用,因为它完全用Java编写并不是非常有效。 (即,如果它的监视效率低于应用程序,则会将VisualVM视为CPU或内存的最大消费者)
VisualVM使用您尝试的方法。 ;)
我使用YourKit并发现这对常见问题很有用,这对您来说已经足够了。它可以选择在代码中打开和关闭分析,只包含某些代码段。这样更有效,因为所有分析工作都是在本机代理中完成的,因此它不使用任何自己的堆,也不会使应用程序变慢。
当Yourkit不足以进行低延迟编程时,我会编写定制的性能测试,并将应用程序时间本身放在应用程序的关键阶段,以便尽可能高效地进行日志记录。这种方法重量轻,可以在正在运行的系统中使用,并且可以让您查看生产系统中发生的情况。