CLR 语言优化。语言编译器 VS JIT 编译器
Posted
技术标签:
【中文标题】CLR 语言优化。语言编译器 VS JIT 编译器【英文标题】:CLR Language optimization. Language Compiler VS JIT Compiler 【发布时间】:2011-01-10 08:31:01 【问题描述】:Release IS NOT Debug: 64bit Optimizations and C# Method Inlining in Release Build Call Stacks
Scott Haselman 说“托管代码中的大多数优化都是由 JIT 编译器而不是语言编译器完成的。” 在上一篇文章中。
我认为,“JIT 编译时间”看起来像“运行时间”,因此 JIT 编译时间优化会使程序变慢。但他说情况正好相反。你知道为什么 CLR 优化会这样工作吗?
【问题讨论】:
我真的不明白问题是什么。您是否在问是否使用 NGEN 之类的东西提前编译为本机图像,从而绕过 JITer 实际上会使您的应用程序运行速度变慢?或者您是在问 JITer 的工作(优化)是否真的让程序运行更慢? 【参考方案1】:是的,它更慢,也更快。 CLR 函数的初始运行将比本机例程慢,因为 JIT 编译器将函数编译为机器代码需要时间。然而,在随后的运行中,代码实际上可能更快,因为 JIT 编译器比 AOT(提前)编译器更了解应用程序。
例如,JIT 编译器可以在支持的处理器上启用 SSE 扩展。
【讨论】:
以上是关于CLR 语言优化。语言编译器 VS JIT 编译器的主要内容,如果未能解决你的问题,请参考以下文章