【问题标题】:Ngen provides an optimized runtime performance, or not?Ngen 是否提供了优化的运行时性能?
【发布时间】:2014-11-25 13:48:07
【问题描述】:

我开发了一个需要 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 用于此类应用程序。

任何形式的帮助来澄清我的想法将不胜感激,在此先感谢。

【问题讨论】:

  • 任何优化都将根据您的实际代码进行。您需要针对这两个版本运行分析器,我们无能为力。
  • @BradleyDotNET 抱歉,我不明白你的评论,我没有展示我的实际代码,但无论如何我在谈论一个应用程序,我已经实现了性能和内存的分析器测试.感谢您的评论
  • NGen 不会提高运行时性能,而是提高启动性能。即,它避免了 JIT 的开销。它与整体运行时性能无关。
  • 我的意思是你有一个引述 NGen 慢 5%;这可能是真的,也可能不是,但它至少部分取决于代码本身。因此,很难给出答案。
  • 完整阅读this。来自链接:原生图像可以在两个方面提供性能改进:改进内存使用和减少启动时间。阅读提供的链接中的更快的应用程序启动部分。

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


【解决方案1】:

来自offical NGen page

原生映像可以在两个方面提供性能改进:改进内存使用和减少启动时间。

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

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

【讨论】:

    猜你喜欢
    • 2021-07-18
    • 2013-11-12
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 2011-08-09
    • 2010-09-09
    • 2018-10-26
    相关资源
    最近更新 更多