Ada*_*ile 10 .net optimization performance 64-bit jit
我知道这.NET是JIT编译你只是在应用程序运行之前运行的架构,但确实为64位架构的JIT编译器优化呢?
在编写将运行的应用程序时,是否有任何需要完成或考虑的事项64bit system?(即使用Int64会提高性能吗?JIT编译器会自动使Int64在32位系统上运行吗?)
Wil*_*lka 14
该64位JIT是不同的,从一个为32位,所以我希望在输出一定的差异-但我不会切换到64位只是为了这一点,我不会期望获得多少速度(如果有的话)的CPU时间通过切换到64位.
如果您的应用程序使用大量内存并且PC有足够的RAM来跟上它,您会注意到性能的大幅提升.我发现当你使用大约1.6gb时,32位.NET应用程序倾向于开始丢失内存异常,但是由于之前的分页很长时间它们开始捶打磁盘- 所以你结束了I/O绑定.
基本上,如果你的瓶颈是CPU,那么64位不太可能有所帮助.如果你的瓶颈是记忆,那么你应该看到一个很大的进步.
将使用Int64提高性能,JIT编译器是否会自动使Int64在32位系统上运行
Int64已经可以在32位和64位系统上运行,但它在64位运行速度更快.因此,如果您主要使用Int64进行数字运算,那么在64位系统上运行应该会有所帮助.
最重要的是衡量你的表现.
我注意到64位速度慢得多.
如前所述,64位JIT编译器的行为与x86 JIT编译器的行为不同.x86编译器将利用x64编译器没有的一些优化.
例如,在.NET 3.5中,32位JIT将使用结构作为参数内联函数调用,但64位JIT不会.
在生产代码中,我看到x86构建的运行速度比x64构建快20%(没有其他更改)