【发布时间】:2015-02-11 13:09:41
【问题描述】:
我们将创建一个性能对我们非常重要的 Web 服务。因此我们决定了测量每种方法的编译时间。
我们要拦截每个方法并记录编译时间。但是我们不想更改发布的代码。那么如何才能让这个拦截器只在调试模式下运行呢?
【问题讨论】:
-
你为什么不pre-JIT一切?
-
@Sriram 因为它不需要像 NGen 那样的安装后步骤。您可以更轻松地进行部署。但我同意 NGen 是更好的选择,如果您可以接受维护费用。
-
CLR 中的 JIT 编译每个方法只发生一次(与 Java HotSpot 不同)。而且由于您有一个 Web 服务,它实际上只启动一次。由于这些原因,我认为 JIT 编译开销在这种情况下并不重要,但我可能错了。
-
我非常怀疑测量任何东西的编译时间是否会以任何方式帮助你。
-
如果你想测量,你可以使用内置的 PerformanceCounter,它有 JIT 时间的计数器
标签: c# performance interceptor