2011-03-25 61 views
1

我做的用C++/Linux的/ GCC /的Windows XP /英特爾編譯器矢量化C++代碼以提高STL性能

建立在一個應用程序中包含的幾大STL向量容器值計算是否歡顏調查優化opprtunity與通過更改對齊屬性或使用英特爾庫函數等來進行矢量化 - 或者通信器自動處理?

回答

0

通常情況下,編譯器會用適當的設置來處理它,所以你必須稍微調整一下。

也就是說,如果你的目標是一個特定的硬件,你最好確保編譯器確實利用了這樣的系統。例如,英特爾編譯器被認爲是其處理器的優秀優化器。

現在,有時手動矢量化也很好。事實上,它就像任何優化:首先用高效的算法實現簡單的可讀版本。然後使用分析器優化代碼。分析器會讓你知道在哪裏集中你的努力。

如果你知道你將有一個特定的函數處理成員,並且具有這種函數生成的代碼(來自編譯器)的經驗,你可能會從一開始就開始應用一些優化,但要確保你已經知道會產生什麼。