我在C++中進行了一些數字處理,並且在Debug構建中使用-Os
優化時,我看到CPU使用率的巨大差異。因此,我想在啓用優化的情況下剖析我的代碼,以便我不浪費時間優化編譯器已經優化好的代碼。使用XCode儀器時間事件探查器啓用優化
當我嘗試使用-Os
優化進行配置文件分析時,我無法使用儀器來表示我的代碼(即使手動指定我的.dSYM
文件的位置)。它甚至不會顯示我的頂級C++成員函數沒有模板化或內聯。
當我指定默認的-O0
優化級別時,我可以很好地表示它。
那麼,甚至可以在啓用優化的情況下進行配置?如果是這樣,那麼有什麼訣竅讓它工作?
我正在使用XCode 4.3.3。
我的意見是,一般來說,作爲一名程序員,您將在比編譯器更高的層次上進行優化,例如,使用正確的數據結構,延遲加載或任何其他,而編譯器將內聯方法,展開循環等。所以我認爲你不浪費你的時間優化關閉編譯器優化,你不打算要優化與編譯器相同的東西。 –
@JonoB:考慮這種情況(這與我的接近)。優化之前,在我最內層的循環中,'StepA()'需要100ms,'StepB()'需要100ms。優化後,StepA()需要10ms,StepB()需要50ms。如果不啓用優化功能來分析信息,我該如何知道我應該將精力集中在'StepB()'上。 –
你使用的是什麼編譯器/ xcode版本?我經常用-Os或更高版本(在發佈版本中)進行配置。 –