【问题标题】:what is the performacne impact on instrumented jars vs non instrumented jars仪表 jar 与非仪表 jar 的性能影响是什么
【发布时间】:2014-09-09 22:36:21
【问题描述】:

如果我用 cobertura 或 clover 检测我的 java 类并部署而不是检测 jars 和部署,会对性能产生什么影响?

这会对应用程序的执行方式有任何显着影响吗?我在我的 Web 应用程序(本地)上尝试了这个测试,它非常小,我无法注意到性能上有任何差异,但我想知道它对大型项目(如重型 Web 服务器)有多大影响每秒大约需要 50 个请求。

【问题讨论】:

  • 我严重怀疑你会不会注意到。
  • 主要区别在于设置陷阱集所需的时间。 (毕竟周五下午。)

标签: java performance instrumentation cobertura


【解决方案1】:

检测代码的性能影响可能会有很大差异,具体取决于您拥有的应用程序的类型。通常,对 CPU 密集型操作的影响很大,而当您的应用程序执行大量 I/0 操作(因为在这种情况下 CPU 只是在等待)时,影响则相当低。

在 Clover 的情况下,它为每个添加一个额外的指令(覆盖记录器的方法调用):

  • 方法入口
  • 代码语句
  • 布尔表达式中的真假条件

您可以在此处找到一些示例性能数据:

请记住,这只是示例数据。最好的方法是衡量您自己的应用程序的性能。

【讨论】:

    【解决方案2】:

    这将对较大的 Web 应用程序项目的性能产生性能影响。 Cobertura 和 Clover 都进行编译时检测,它将字节码修改为所有指令,以将覆盖数据写入磁盘或您指定的任何位置。性能影响将与检测的代码量相关,因此如果您只检测客户端代码而不是所有会减轻影响的依赖项。您将需要根据经验进行测试,以了解影响将是什么。

    【讨论】:

      猜你喜欢
      • 2017-02-15
      • 1970-01-01
      • 2022-06-16
      • 1970-01-01
      • 2021-09-15
      • 2018-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多