由于某种原因,有时我会发现查看功能的优化编译器输出很有用或只是很有趣。

对于非托管的C / C ++代码,我最喜欢的方法是在发布模式下进行编译,在所需功能中粘贴断点,运行并在遇到断点时在Visual Studio中查看反汇编。

我最近在C#项目中尝试了此操作,发现该技术无效。即使在发布模式下,我看到的反汇编显然也没有得到优化。我发现并禁用(在Visual Studio 2010中)“调试...选项和设置...调试...常规...禁止在模块加载时进行JIT优化”选项,这大概使我更接近想要的东西,仅现在,当我尝试运行它时,它会警告我,然后我无法使其停止在断点上,以便可以看到反汇编。

因此,如果我想查看功能的CLR(4.0)抖动的分解后的优化输出,最好的解决方法是什么?需要明确的是,我希望看到x86(最好是x86_64)的反汇编,而不仅仅是IL的反汇编(您可以在Reflector中看到)。

最佳答案

当然,经过半天的时间寻找答案后,我在提出要求5分钟后便找到了答案。

我离得很近;我在问题中唯一缺少的步骤是,还必须在选项中取消选中“启用我的代码”。

完整指南可在此处找到:http://blogs.msdn.com/b/vancem/archive/2006/02/20/535807.aspx

关于.net - 如何查看优化的jitted .NET代码的反汇编?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3423547/

10-11 01:45