知识大全 .NET 3.5 SP1中的JIT增强

Posted

篇首语:志不强者智不达,言不信者行不果。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 .NET 3.5 SP1中的JIT增强相关的知识,希望对你有一定的参考价值。

你可能错过的东西:.NET 3.5 SP1中的JIT增强  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在 NET平台里 大部分编译器的优化并不是通过VB和C#编译器来完成的 它们宁可把优化的处理推后到CLR的即时(Just In Time JIT)编译器读取IL 并转换为原生机器码的时候来完成 由于这个原因 对JIT的改变会极大地影响之前编译好的程序集

  一个主要的影响就是内联函数(Inlining Function)调用 之前 JIT对内联方法的处理非常保守 Vance Morrison解释了个中缘由

  它对内联的处理并不是很好 内联总是减少指令执行的数量(这是由于最低限度的调用和返回指令没有被执行) 但是它能(并经常)让结果代码变得很大 大部分人都能直觉地理解 内联大的方法(比如 Kb的)不是很有意义 而内联非常小的方法可以让调用的占用空间更小(由于调用指令才 字节) 这样的选择总是正确的 但是介于两者之间的方法要如何处理呢?

  有趣的是 当你让代码变大时 你也就让它执行缓慢 因为内存天生地缓慢 你的代码越大 它越不会放在最快的CPU缓存(称之为L )里面执行 在那样的情况下 处理器需要执行 个周期直到它能从另外的缓存(称之为L )中获取到执行代码 如果L 缓存中还不存在 那么就需要到主内存中获取(需要花费 +周期) 对于在紧密循环中执行的代码 这样的结果不会有什么问题 因为所有的代码都适合放入到最快缓存中(典型的是 K) 不过对于 常规的 代码 它通过大量的方法来执行大量的代码 越大就越慢 的效果就非常显著 更大的代码也就意味着在启动时从磁盘获取代码需要更大的磁盘I/O 这就意味着你的应用程序启动较慢

  在Service Pack 中 微软引入了一个新的基于代码尺寸的启发式算法 来判断调用是否处于一个循环中 在常规情况下 函数只有当在调用空间中的结果机器码比原始版本要小时 才能被内联 这样做就保证了尽可能多的代码能适合CPU的缓存 当缓存不够用时 就能对性能产生巨大的影响

cha138/Article/program/net/201311/14782

相关参考

知识大全 浅析.NET 3.5 SP1中的JIT增强

浅析.NET3.5SP1中的JIT增强  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在NET平台里

知识大全 .NET Framework 3.5 SP1正式版发布

.NETFramework3.5SP1正式版发布  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 .NET Framework 3.5 SP1离线安装卸载方法

.NETFramework3.5SP1离线安装卸载方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 ASP.NET 3.5中的Login控件应用vb.net实现

ASP.NET3.5中的Login控件应用vb.net实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 浅谈ASP.NET 4.0 SEO增强中的UrlRouting

浅谈ASP.NET4.0SEO增强中的UrlRouting  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 WCF 3.5对HTTP编程的增强

WCF3.5对HTTP编程的增强  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  NETFrame

知识大全 公布.NET Framework 2.0升级3.5方案

公布.NETFramework2.0升级3.5方案  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 .NET Framework 2.0升级3.5认证方案

.NETFramework2.0升级3.5认证方案  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 .Net 3.5环境下常用数组性能测试

.Net3.5环境下常用数组性能测试  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这件事情似乎

知识大全 ASP.NET 3.5中使用新的ListView控件

ASP.NET3.5中使用新的ListView控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!