java - 未连接调试器时 jvmti 的性能影响?

标签 java performance debugging

我们最近将一个网络应用程序(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/

相关文章:

python - Python 中的时间旅行调试 - 建议使用哪些工具?

java - 如何在 jCalendar 中设置 "off"所有切换日期按钮?

java - StartApp 广告未显示在我的应用程序上

c# - 枚举和使用带有常量的静态类有什么区别?

java - 单写,不同读者与同一个线程的性能

c - 在嵌入式 C 中使用 printf 进行多级调试

java - 文本处理作业

java - 通过注释快速添加日志记录(例如用于 getter/setter 的 lombok) - 有可用的解决方案吗?

performance - L2 TLB丢失后会发生什么?

c++ - Xcode 4 : why "Continue to current line" is grayed out?