使用代理的性能影响



我正在评估一个通过检测字节码工作的产品。 我通过提供的代理启动我的应用程序,该代理检测字节码、分析并生成有关我的应用程序的报告。

确定运行代理所施加的性能损失的最佳方法是什么? 如果我在有和没有代理的情况下通过 JMH 捕获应用程序中一些操作的延迟是否足够? 此外,使用执行字节码检测的代理是否存在基线预期性能下降?

谢谢

您可以下载现有的 Java 性能基准测试,如 SPECjvm2008,并在有/没有代理的情况下运行它。 我不会只编写一个来自您正在监视的应用程序的微基准测试,因为这可能不会突出该产品(方法/内存/系统(使用的各种操作和检测技术的瓶颈。

为典型代理商宣传的基线是 5%,这是我持保留态度的数字。

如果您的应用程序是某种服务器,则可以使用代理启动它并运行单独的 JMH 基准测试来测量对应用程序的调用。这样,无论是否使用此代理,您的应用都可以运行,并且基准代码不会干扰它。但是您必须隔离很多因素,例如呼叫延迟、调用方的 CPU 使用率(如果您从同一主机运行调用方(、调用分配(您在服务器上有很多不同的调用,但在基准测试中只有几个(等。

相反,如果你在过程代理所附加到内部进行基准测试,我不会相信这个结果,除非操作需要很长时间,比如>5ms。

最新更新