LINQPad的IL代码是否为优化版本?

8
LINQPad在结果附近有一个选项卡,可以显示你正在运行的C#语句的IL。我想知道这是否是优化过的“Release”版本代码,而不是未经优化的“Debug”版本代码。
也许有一种简单的方法可以通过编写一个小代码片段或其他方式来检查?

3
右下角有一个小的/o-//o+按钮,控制着优化。由于代码基于是否按下该按钮而发生变化,因此我相当确定您可以通过这种方式获得任一版本。 - Jeroen Mostert
我已经看了无数遍,但从未有所领悟。不错。 - Joe Phillips
3
乱按按钮来看它们的作用:如果你在维护核反应堆,那是个坏主意;但如果想了解日常编程工具的运作方式,这是个好主意。 - Jeroen Mostert
1
如果IL代码中有大量的nop指令,那么它可能没有被优化。通常在调试版本中插入这些指令,以便在上面设置断点。也许这不是一个100%总是正确的规则,但如果有很多这样的指令,很可能没有被优化。虽然我不能确定Linq Pad是否会插入大量的nop指令。 - pinkfloydx33
1个回答

9
这可以通过偏好设置(“编辑”→“首选项”)进行控制,完全由您决定 :)
此外,还可以使用键盘快捷键Shift+Alt+o或单击 UI 底部的“/o-”或“/o+”选项切换偏好设置。
请看图片演示:
第一张图片: enter image description here 第二张图片: enter image description here

太棒了。您也可以添加来自Jeroen的/o-和/o+注释吗? - Joe Phillips
@JoePhillips 完成。 - RB.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接