gpt4 book ai didi

.net - 如何查看 JIT 生成的代码

转载 作者:行者123 更新时间:2023-12-02 12:48:46 27 4
gpt4 key购买 nike

类似 http://aakinshin.net/en/blog/dotnet/ryujit-ctp5-and-loop-unrolling/ 的帖子显示 JIT 编译器创建的汇编代码。如何从 .NET 程序中获得通用汇编?

最佳答案

这只是从 Visual Studio 调试器窗口复制的。您只需更改一些选项,以便可以调试优化的代码,否则不会发生循环展开:

  • 工具 > 选项 > 调试 > 常规 > 取消选中“抑制 JIT 优化”复选框。为了安全起见,还要取消选中“仅我的代码”。这可以确保即使您正在调试,优化器也可以完成其工作。
  • 构建 > 配置管理器 > 左上角组合 = 发布。调试版本永远不会被优化。
  • 项目 > 属性 > 构建 > 取消选中“首选 32 位”复选框,并确保平台目标组合为 AnyCPU。这是必要的,这样您才能获得新的 x64 抖动而不是 x86 抖动来生成代码。
  • 在您想要查看的代码上设置断点。请注意,断点在优化代码中表现不稳定,并且可能根本不会中断,最好将其设置在方法 header 或从一开始就单步执行。
  • 按 F5。在断点处使用“调试”>“窗口”>“反汇编”。您将看到源代码和机器代码的混合,就像在博客文章中看到的那样。

请注意,您必须编写具有足够副作用的“实质性”代码,这样它就不会被完全优化。例如,Console.Write() 可以提供帮助。如果您在将源代码与机器代码关联起来时遇到困难,那么您可能需要首先为调试版本执行此操作。

关于.net - 如何查看 JIT 生成的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31802549/

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