对仪表罐和非仪器罐的性能影响是什么?

时间:2014-07-18 17:47:19

标签: java performance instrumentation cobertura

如果我使用cobertura或clover检测我的java类以及部署vs而不是仪器jar并部署,会对性能产生什么影响?

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

如果是Clover,它会为每个人添加额外的指令(覆盖记录器的方法调用):

  • 方法条目
  • 代码声明
  • 布尔表达式中的真假条件

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

请注意,它只是示例数据。最好的方法是衡量自己应用程序的性能。