我们最近将一个网络应用程序(tomcat 5.5.x 网络应用程序)投入生产,它今天开始表现出奇怪的行为。我们在任何开发或预生产环境中都没有看到这种行为。
我们在运行时对生产系统的唯一看法是日志记录。尽管它们可以告诉我们发生了什么,但它们不能真正帮助我们诊断为什么会发生。
我们昨天不得不重新加载上下文两次以解决该问题。
我正在考虑启动 jpda Activity 的生产 tomcat 服务器。如果问题再次出现(从服务用户请求的服务器池中删除 tomcat 之后),这将允许我将调试器连接到应用程序。
当连接调试器时,您显然会为 jpda 付出性能损失。但是,我想知道未连接调试器时的“成本”是多少?我怀疑与“监听”调试器相关的开销可能非常小。在我花几个小时进行性能测量之前,我希望有人可以向我指出可能澄清这一点的文档?
Java 版本“1.5.0_17” Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_17-b04) Java HotSpot(TM) 64 位服务器 VM(构建 1.5.0_17-b04,混合模式)
在 RHEL 5.3 上
谢谢!
卡洛斯
最佳答案
我没有量化的答案,但是性能影响很小;它在架构上与 DTrace 非常相似,基本上如果您不连接外部工具并激活事件,测试点只需做很少的工作;他们对不活跃的事件类也做很少的工作。
关于java - 未连接调试器时 jvmti 的性能影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/802607/