我的代碼運行速度很慢,但我知道它不需要調試。我有一個第三方硬件連接到我的系統,它只在調試模式下工作(是的,真的很痛苦%$)。調試模式下的優化
所以我想打開我的功能的優化,但它使用調試正常模式和優化開啓之間的精確時間。
#pragma optimize("ts", on)
void DataAnalyze::PrepareData(std::vector<short>& data, std::vector<short>& laserData, std::vector<std::vector<double>>& normalizedData) {
...
}
#pragma optimize("ts", off)
這是否只在釋放模式下工作才能關閉優化,或者我錯過了什麼?
一個因素不能編譯使用優化標誌(例如,相當於gcc世界中的-O3)? – Claudio 2014-09-23 10:16:31
msvc也有不同的標準庫實現。所以有一個優化版本的'std ::'類型和未優化的版本。嘗試鏈接到運行時的發行版。我不明白「附加到我的系統的第三方硬件只能在調試模式下工作」的含義。 – PeterT 2014-09-23 10:17:05
通常,STL的調試版本已打開大量檢查。即使你對這段代碼進行了優化,檢查仍然會到位,並且比發佈時慢。 – Felics 2014-09-23 10:18:54