首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的C++编译器是否优化了我的代码?

我的C++编译器是否优化了我的代码?
EN

Stack Overflow用户
提问于 2009-11-29 08:23:32
回答 4查看 1.2K关注 0票数 6

在使用现代C++编译器(包括MSVC、GCC、ICC)时,我如何说它具有:

循环(或使用其他特定处理器code

  • vectorized instructions)

  • unrolled

  • 检测tail-recursion

  • performed RVO (以其他方式优化的返回值optimization)

  • or

))。

没有深入到编译器生成的汇编程序代码中?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-11-29 08:27:10

唯一能真正判断的方法是检查汇编程序输出(您似乎已经打折了)。除此之外,您还可以阅读doco,查看编译器的每个级别提供了哪些类型的优化。

但是,老实说,如果您不相信编译器的优化级别正在完成,那么您可能不会信任doco :-)

我会亲自看看汇编程序,这是你真正确定的唯一方法。

票数 18
EN

Stack Overflow用户

发布于 2009-11-29 08:58:47

英特尔编译器有很好的报告功能。在参考文档或手册页中查找-vec-报告和-par-报告。

g++also有向量报告,在手册页查找“向量”,我不认为g++有并行的自动代码生成。

就最后三件事而言,我不认为编译器会报告这一点,所以您可能需要到程序集来获取该信息。

票数 3
EN

Stack Overflow用户

发布于 2009-11-29 10:04:25

对于RVO或其他复制-省略的内容,只需将一些日志(printf)放在类的复制-ctor和dtor中。如果优化工作正常,则应该会看到更少的对象被复制。

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

https://stackoverflow.com/questions/1814993

复制
相关文章

相似问题

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