【问题标题】:CLR Language optimization. Language Compiler VS JIT CompilerCLR 语言优化。语言编译器 VS JIT 编译器
【发布时间】: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 的工作(优化)是否真的让程序运行更慢?

标签: optimization clr


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多