2011-01-10 153 views
1

Release IS NOT Debug: 64bit Optimizations and C# Method Inlining in Release Build Call StacksCLR语言优化。语言编译器VS JIT编译器

斯科特Haselman说:“最托管代码的优化是由JIT编译器,而不是语言的编译器来完成。”在上面的帖子。我认为,'JIT编译时间'看起来像'运行时间',所以JIT编译时优化可以使程序变慢。但他说这是相反的。你知道为什么CLR优化是这样的吗?

+0

我真的不明白问题是什么。你问是否使用像NGEN这样的东西提前编译为本地图像,因此绕过JITer实际上可以让你的应用程序运行速度更慢?还是你问JITer是否在做其工作(优化)实际上使程序运行速度变慢? – 2011-01-10 08:44:40

回答

0

所以是的,速度较慢,速度也较快。 CLR函数的初始运行将比本地例程慢,因为JIT编译器需要时间将函数编译为机器代码。然而,在后续运行中,代码实际上可能会更快,因为JIT编译器比AOT(提前)编译器更了解应用程序。

例如,JIT编译器可以在支持的处理器上启用SSE扩展。