.NET CLR是否真的针对当前处理器进行了优化

dew*_*ald 44 .net c# clr optimization jit

当我读到有关C#或Java等JITted语言的性能时,作者通常会说它们理论上应该/可以胜过许多本机编译的应用程序.理论上,本机应用程序通常只是为处理器系列(如x86)编译,因此编译器无法进行某些优化,因为它们可能并非真正在所有处理器上进行优化.另一方面,CLR可以在JIT过程中进行特定于处理器的优化.

有谁知道微软(或Mono)的CLR在JIT过程中是否实际执行特定于处理器的优化?如果是这样,有什么样的优化?

Sam*_*ell 27

从2005年开始,David Notario列出了几个具体的针对性优化是他的博客文章" JIT是否利用了我的CPU? ".我找不到关于新CLR 4的任何信息,但我想会包含几个新项目.

  • 哇.这是一个很好的发现.+1 (4认同)

Meh*_*ari 8

我知道在Mono中完成的一个特定于处理器的优化是在支持SSE的处理器上编译Mono.Simd调用 SSE指令.如果运行代码的处理器不支持SSE,则JIT编译器将输出等效的非SSE代码.