首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测JIT优化或遗漏优化

检测JIT优化或遗漏优化
EN

Stack Overflow用户
提问于 2011-11-10 09:18:05
回答 1查看 223关注 0票数 1

据我了解,.NET CLR将使用方法内联循环展开等模式来优化代码.在方法内联的情况下,将不会执行这样的操作,原因如下:

  • 大于32字节IL的方法将不会内联。
  • 虚拟函数没有内联。
  • 具有复杂流控制的方法将不会内联。复杂流控制是指任何流控制,而不是if/ or / any;在这种情况下,可以切换或切换。
  • 包含异常处理块的方法不是内联的,尽管抛出异常的方法仍然是内联的候选方法。
  • 如果该方法的任何形式参数是结构化的,则该方法将不会内联。
  • 等等..。

我的问题是..。是否有任何方法来检测JIT优化过程出于这些或其他原因而决定跳过的内容?

我的想法是,我想知道哪些领域的代码可能需要重新构造,以确保我可以获得优势的JIT优化。

EN

回答 1

Stack Overflow用户

发布于 2016-12-15 15:27:17

现在,您可以在自己构建的CoreCLR上运行应用程序,并收集所需的所有统计信息。您可以检查clrconfigvalues.h并启用任何希望获取相关信息的标志(例如,在命令提示符中使用set COMPLUS_JitDump命令)。

这不是很容易,但这是可能的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8077253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档