我在使用C ++ / Linux / GCC / Windows XP / Intel编译器构建的应用程序中对几个大型STL向量容器中包含的值进行计算
是否值得通过改变aligment属性或使用intel库函数等来调查矢量化的优化机会 - 或者comipler会自动照顾?
答案 0 :(得分:0)
通常情况下,编译器会使用适当的设置来处理它,所以你必须稍微调整一下。
也就是说,如果你针对特定的硬件,你最好确保编译器确实利用了这样的系统。例如,众所周知,英特尔编译器是其处理器的优秀优化器。
现在,有时手动矢量化也很好。事实上,它就像任何优化一样:首先使用高效的算法实现简单的可读版本。然后使用分析器优化代码。分析器会告诉您在哪里集中精力。
如果你知道你有一个特定的函数处理成员,并且对这种函数有生成代码(来自编译器)的经验,你可能从一开始就开始应用一些优化,但要确保你已经知道会产生什么。