升级.NET Framework的性能改进

时间:2013-06-23 17:54:29

标签: .net clr

我有一个用.NET 4.0编写的项目,没有语法或功能原因将其升级到.NET 4.5。但是,我想知道执行性能是否会提高。

现在,我理解IL code will probably remain the same,因此性能改进将来自CLR改进。但是,由于.NET 4.5是still running the .NET 4.0 CLR,升级后会有明显的性能提升吗?

(为了完成/展示,从.NET 2 CLR升级到.NET 4 CLR怎么样?)

2 个答案:

答案 0 :(得分:7)

是的,CLR版本号仍然相同,4.5 CLR 替换 4.0 CLR。然而,修订是实质性的。与支持WinRT开发的语言投影不同,4.5版本的重点实际上是对性能的改进。

我只是简要介绍一下,this magazine article已经很好地介绍了它们。

  • 多核JIT。它将IL编译为多个核心上的机器代码。改善热启动时间。
  • 配置文件引导优化。 Ngen.exe关注在测试运行中收集的仪器数据,以优化本机代码的布局。它改进了热代码的缓存局部性。
  • 大对象堆改进。 LOH传统上存在内存碎片问题,改进为4.5
  • 服务器GC背景集合。已经在工作站GC上可用一段时间,现在也支持服务器GC。减少收集暂停。
  • 本文未提及,通过预缓存常见.NET类型的类型数据,可以改进使用Reflection on .NET类型。
  • 检查文章的其余部分以了解其他更改。

答案 1 :(得分:1)

multicore JIT compiler仅适用于4.5。如果启用它,仅此一项就可以为您带来很大的性能提升。

值得一提的是,通过4.5你可以放弃对widnows xp的支持(这可能是也可能不是问题)。