升级.NET Framework的性能改进

Ari*_*iac 4 .net clr

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

现在,我知道IL代码可能保持不变,因此性能改进将来自CLR改进.但是,由于.NET 4.5 仍在运行.NET 4.0 CLR,升级会有明显的性能提升吗?

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

Han*_*ant 7

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

我将简要介绍它们,这篇杂志文章已经很好地介绍了它:

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