如何在.Net中观看优化的ASM代码

亚历克斯·朱可夫斯基(Alex Zhukovskiy)

因此,如果我只想在调试时查看JIT编译的内容,就可以Debug -> Windows -> Disassembly观看并观察我想要的一切。但是,在调试器下执行时,JIT不会生成优化的代码。例如:

    private static void Foo()
    {
        var sw = Stopwatch.StartNew();
        for (int i = int.MinValue; i < int.MaxValue; i++) {}
        sw.Stop();
        Console.WriteLine(sw.Elapsed);
    }

在调试器下运行时,此代码需要12秒(在我的i7-3770上),如果不是,则只需1秒。

因此,这非常有意思:如果没有从代码中删除循环,为什么循环速度要快10倍。如果将其删除(由于代码无用),为什么要花这第二秒而不是几秒钟?


有什么问题

如何在不使用NGen的情况下查看最终的x86优化代码?

亚历克斯·朱可夫斯基(Alex Zhukovskiy)

因此,答案非常简单,您只需取消Suppress jit optimization on module load选中Visual Studio中的复选框,就可以看到优化的代码,但是要小心,因为在这种模式下,某些断点永远不会出现。例如,如果内联方法,则将永远不会调用此方法,因为此后的断点将不起作用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在angularJS中观看日期对象

来自分类Dev

如何在Angular中观看多个收藏?

来自分类Dev

如何在angularJS中观看日期对象

来自分类Dev

如何在Ubuntu中观看Netflix?

来自分类Dev

如何在bash中观看for循环?

来自分类Dev

如何在Firebase中观看添加子事件

来自分类Dev

如何在OpenERP(Odoo)中观看无效记录规则?

来自分类Dev

如何在Ubuntu 13.10 64位中观看DVD

来自分类Dev

如何在Amazon Prime Instant Video中观看视频?

来自分类Dev

如何在Vue插件中观看对象属性

来自分类Dev

如何在Ubuntu 13.10 64位中观看DVD

来自分类Dev

如何在Amazon Prime Instant Video中观看视频?

来自分类Dev

如何在OpenERP(Odoo)中观看非活动记录规则?

来自分类Dev

如何在Firefox中观看1080p的youtube视频?

来自分类Dev

如何在`router`中观看指定的`properties`并做出相应反应?

来自分类Dev

如何在离子模拟器中观看console.logs?

来自分类Dev

如何在Angular.JS中观看过滤后的集合?

来自分类Dev

如何在NetBeans中观看完整的输出错误消息

来自分类Dev

如何在从图库中选择的活动中观看视频

来自分类Dev

如何在v-data-table vuetify中观看分页方向

来自分类Dev

如何在Windows中观看带有外部字幕的DVD视频?

来自分类Dev

如何在Linux中观看带有外部字幕的DVD视频?

来自分类Dev

如何在GHCI中加载优化的代码?

来自分类Dev

如何在javascript中优化代码

来自分类Dev

如何在while代码中进行优化?

来自分类Dev

如何在Rails中优化此代码?

来自分类Dev

如何在 Kotlin 中优化代码?

来自分类Dev

如何不在Play框架中观看文件的更改

来自分类Dev

如何获取在iOS应用中观看的时长视频

Related 相关文章

热门标签

归档