代码之家  ›  专栏  ›  技术社区  ›  CaptainHastings

使用代理的性能影响

  •  0
  • CaptainHastings  · 技术社区  · 8 年前

    我通过提供的代理启动我的应用程序,该代理插入字节码、配置文件并生成有关我的应用程序的报告。

    确定运行代理所造成的性能损失的最佳方法是什么? 如果我通过JMH捕获我的应用程序中的一些操作的延迟(有代理和没有代理),这就足够了吗? 此外,使用执行字节码插装的代理是否存在基线预期性能下降?

    谢谢

    2 回复  |  直到 8 年前
        1
  •  3
  •   Amir Afghani    8 年前

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

    典型代理的广告底线是5%,这是一个我会毫不犹豫地接受的数字。

        2
  •  1
  •   Imaskar    8 年前

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

    相反,如果您在附加了process agent的内部进行基准测试,我不会相信这个结果,除非操作需要很长时间,如>5ms。