gpt4 book ai didi

.NET Core : What does MethodImplOptions. Aggressive Optimization 到底做了什么?

转载 作者:行者123 更新时间:2023-12-03 23:47:36 26 4
gpt4 key购买 nike

什么MethodImplOptions.AggressiveOptimization到底怎么办?
Microsoft's documentation并没有告诉我太多。它在哪些情况下有用?

最佳答案

我会在文档中而不是在 .net core github 中查找更多详细信息(如果这就是您要查找的内容)或在 release notes .
让我们先看看后者。对于 .net core 3.0,我们可以找到以下条目:

The fully optimizing JIT produces higher-quality (or more optimized) code more slowly. For methods where Quick JIT would not be used (for example, if the method is attributed with MethodImplOptions.AggressiveOptimization), the fully optimizing JIT is used.


因此,一方面,我们知道如果一个方法被标记为这样的属性,它应该通过完全优化的 JIT 进行 JIT,这可能会产生更好、更优化的代码 - 但需要更多的时间来编译。
现在让我们关注 github,看看我们能在那里找到什么。
关于这个的讨论在这个 ticket 中完成,并且它提供了有关该主题的更多详细信息。

The flag could be used in a MethodImplAttribute to indicate that the method contains hot code:

  • For tiering, it could cause tier 1 JIT to be used right away for the method[...]
  • It could allow the JIT to spend more JIT time to generate better code, such as inlining more aggressively into the function

从中我们可以得到一个答案,在哪些情况下可以使用它,以及它在下面做什么。
在我们处理热路径代码的情况下 - 这个属性对于 JIT 很有用,可以生成更快、更优化的代码,而不是进行分层编译。如果运行时检测到它实际上在热路径上,则在开始时使用更多时间可以节省时间。
还有一个关于此标志的其他用法的有趣讨论,您可以阅读。
但是最终的真相(我希望)和 promise 与这个讨论有关,所以我们可以看看它们。从这些提交和提交消息中,我们可以了解到这实际上是分层编译和 JIT 正在发生的事情(至少这是我所看到的)。

关于.NET Core : What does MethodImplOptions. Aggressive Optimization 到底做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61601225/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com