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

问题描述:

我们最近推出了一个Web应用程序(tomcat 5.5.x web应用程序)投入生产,并且今天开始展示奇怪的行为。我们在任何开发或预生产环境中都看不到这种行为。调试器未连接时jvmti的性能影响?

我们在运行时只能看到生产系统的日志。尽管他们可以告诉我们发生了什么,但他们无法真正帮助我们诊断发生的原因。

昨天我们不得不重新加载上下文来解决问题。

我正在考虑用jpda启动生产tomcat服务器。如果问题再次发生(从服务器请求池中删除tomcat之后),这将允许我将调试器连接到应用程序。

当调试器连接时,您显然会用jpda支付性能损失。但是,我想知道调试器未连接时“成本”是多少?我怀疑与“侦听”调试器相关的开销可能非常小。在我花费几个小时进行性能测量之前,我希望有人能够指出我可以澄清这一点的文档?

Java版本 “1.5.0_17” 的Java(TM)2运行时环境,标准版(版本1.5.0_17-B04) 爪哇热点(TM)64位服务器VM(建立1.5.0_17-B04,混合模式)

on RHEL 5.3

谢谢!

Carlos

我没有量化的答案,但是对性能的影响很小;它在架构上与DTrace非常相似,基本上,如果您不连接外部工具并激活事件,测试点必须做很少的工作;他们对于不活跃的事件类也做很少的工作。

+0

我不同意性能影响非常小,我只是在tomcat上运行带有jpda活动的Liferay,并且http请求处理的次数超过了10次 – lisak 2010-10-27 20:44:04