Ngen是否提供优化的运行时性能?

时间:2014-09-30 20:08:40

标签: c# .net vb.net winforms ngen

我开发了一个需要24小时工作的WinForms应用程序,启动时间很慢,但这并不重要因为可能每天只运行1到2次,执行时间很长,然后我感兴趣进入额外的运行时性能和任何启动性能。

澄清一点,我记得NGen功能提供了启动的好处,但我已经调查了所有我能做的事情,而且我没有找到任何关于NGen是否也为我的需求提供运行时性能的有用信息。

我只发现没有基础或任何官方来源的猜测,只是这样,至少对我来说没有证明这样的猜测,如下:

Code compiled by NGen runs about 5% slower than JIT-compiled code

http://www.tigranetworks.co.uk/blogs/electricdreams/why-using-ngen-on-your-assemblies-may-not-be-as-smart-as-you-think/

我的问题是,是否有人可以向我提供信息,详细信息,或者可能是官方来源或性能测试,以确定NGen是否真的将运行时优化添加到像我这样的应用程序(24小时运行和执行运行时操作),或者如果在另一方面,我仍然应该使用JIT进行这种应用。

任何有助于澄清我的想法的帮助都将在此之前表示感谢。

1 个答案:

答案 0 :(得分:2)

来自offical NGen page

  

本机映像可以在两个方面提供性能改进:改进的内存使用和缩短的启动时间。

  

本机映像的性能取决于许多使分析变得困难的因素,例如代码和数据访问模式,跨模块边界调用的次数,以及其他应用程序已加载了多少依赖项。确定本机映像是否有益于您的应用程序的唯一方法是在关键部署方案中仔细进行性能测量。

您正在寻找没有人承诺的运行时性能提升的声明。