2010-04-13 62 views
0

Shark已經確定了一個需要改進的代碼區域 - 未對齊循環開始 並建議添加-falign-loops = 16(gcc編譯器標誌)。我已經將這個添加到了 iphone Xcode中的其他C標誌都用於依賴項目和頂級項目。然而,它仍似乎不影響性能和鯊魚仍報告 所以看來它不工作了同樣的問題。在Xcode中使用gcc編譯器標誌

我是否正確地做這件事?

回答

1

從鯊魚的提示並不總是有益或適宜 - 你必須做出最後的決定 - 如果你的循環是相當小的,然後循環對齊可能做一個小的差異,但也有可能是更重要的事情,你會看到在這之前進行優化。

+0

嗯,我至少希望應用編譯器標誌後,鯊魚推薦,至少不會抱怨說issue.Even如果它沒有顯著改善性能,這個問題我已經是鯊魚還是建議我使用-falign-循環= 16標誌,即使我已經有了。 – tech74 2010-04-13 15:09:44

+0

是循環起始地址現年16字節對齊?應該有NOP指令之前的循環來實現這一目標的開始。這是不那麼對齊16字節這可能是因爲編譯器是忽略了'-falign-循環= 16'切換或者是一些其他的問題。 – 2010-04-13 15:31:24

+0

嗨,有些是,有些不是。該代碼是做浮點數學和它的時間太長,鯊魚也抱怨使用單FP LDM/STM插件的並建議使用多個LDM/STM。 這裏是要優化的循環 int i; float * a; float object [40]; float val; (i = 0; i tech74 2010-04-13 16:35:04

1

你編譯C文件或C++文件?如果C++,那麼你可能想檢查他們是否通過其他C++標誌設置。

在Xcode構建結果窗口中有一個按鈕,顯示構建成績單,你可以用它來確保編譯器標誌是通過使其與gcc

+0

嗨,感謝他們似乎正在通過命令行無論如何,雖然不知道爲什麼它沒有影響:( – tech74 2010-04-13 14:19:05