我正在寻找一个 Java Profiler,用于满足以下所有要求的非常高需求的生产环境,无论是商业的还是免费的:
- 与代码的轻量级集成(无需使用特殊选项重新编译,无需代码挂钩等)。在应用程序代码旁边删除一些分析器特定的 .jar 是可以的。
- 应该能够在不重新启动应用程序的情况下连接/断开与 JVM 的连接。
- 当分析不活动时,对性能没有影响
- 当分析处于活动状态时,对性能的影响可以忽略不计。非常轻微的退化是可以接受的。
- 必须完成探查器所做的所有“预期”工作——在每种方法中花费的时间来查找热点、对象分配/内存分析等。
本质上,我需要一些可以在生产中处于休眠状态的东西,而没有人知道或关心它的存在,但随后能够轻松地连接到它(和性能下降),以查明难以发现的问题,如热点和同步问题。