在使用现代C++编译器(包括MSVC、GCC、ICC)时,我如何说它具有:
循环(或使用其他特定处理器code
))。
没有深入到编译器生成的汇编程序代码中?
发布于 2009-11-29 08:27:10
唯一能真正判断的方法是检查汇编程序输出(您似乎已经打折了)。除此之外,您还可以阅读doco,查看编译器的每个级别提供了哪些类型的优化。
但是,老实说,如果您不相信编译器的优化级别正在完成,那么您可能不会信任doco :-)
我会亲自看看汇编程序,这是你真正确定的唯一方法。
发布于 2009-11-29 08:58:47
英特尔编译器有很好的报告功能。在参考文档或手册页中查找-vec-报告和-par-报告。
g++also有向量报告,在手册页查找“向量”,我不认为g++有并行的自动代码生成。
就最后三件事而言,我不认为编译器会报告这一点,所以您可能需要到程序集来获取该信息。
发布于 2009-11-29 10:04:25
对于RVO或其他复制-省略的内容,只需将一些日志(printf)放在类的复制-ctor和dtor中。如果优化工作正常,则应该会看到更少的对象被复制。
https://stackoverflow.com/questions/1814993
复制相似问题