C# 抑制模块加载时的JIT优化(仅限托管)
如果我在VS中运行版本构建,但附加了调试器。因此,我可以设置断点并研究优化的代码反汇编。通常,为了查看所有优化,我需要在运行时不附加调试程序并将其分离到正在运行的进程 在Visual Studio中取消选择“在模块加载时抑制JIT优化(仅限托管)”开关是否足以产生相同的结果?我所说的“相同结果”是指:与启动时没有附加调试程序相同(优化)的机器指令C# 抑制模块加载时的JIT优化(仅限托管),c#,.net,visual-studio,jit,compiler-optimization,C#,.net,Visual Studio,Jit,Compiler Optimization,如果我在VS中运行版本构建,但附加了调试器。因此,我可以设置断点并研究优化的代码反汇编。通常,为了查看所有优化,我需要在运行时不附加调试程序并将其分离到正在运行的进程 在Visual Studio中取消选择“在模块加载时抑制JIT优化(仅限托管)”开关是否足以产生相同的结果?我所说的“相同结果”是指:与启动时没有附加调试程序相同(优化)的机器指令 我听说JIT编译器只会利用所有优化选项,如果程序集是发布版本,并且没有附加调试程序。现在我想知道这个开关是否可以使我的调试/检查更容易 调试版本和发布
我听说JIT编译器只会利用所有优化选项,如果程序集是发布版本,并且没有附加调试程序。现在我想知道这个开关是否可以使我的调试/检查更容易 调试版本和发布版本之间的IL差别很小,因此您确实希望在这种情况下使用发布版本(即,所有DEBUG.XXX调用都在发布版本中编译)
取消选中“在模块加载时抑制JIT优化(仅限托管)”应允许JIT优化,就像没有附加调试程序一样。我不知道这两种情况之间有什么区别。因为它无法明确任何规则。我试过了,它似乎也这么做了。但我不知道这是否是行为的定义。