有一些問題,我的代碼這個時間差異的原因是什麼?
在如下代碼:
GainDetailMatI
是Mat
型與9792 * 2448矩陣
ContrastGainBound4096x
,ContrastGainLayerI
是int
平臺:Android 4.4系統,NDK GCC 4.9
一:
Mat plus = ContrastGainLayerI * min(ContrastGainBound4096x, max(0, GainDetailMatI - 4096.0));
B:
Mat t=max(0, GainDetailMatI - 4096.0);
Mat plus = ContrastGainLayerI * min(ContrastGainBound4096x, t);
一個使用13毫秒比B
更多我在Application.mk
關閉GCC優化由一套APP_OPTIM := debug
有沒有人知道原因?
我想也許max(0, GainDetailMatI - 4096.0)
返回類型MatExpr
而t=max(0, GainDetailMatI - 4096.0);
轉換MatExpr
到Mat
也許這是什麼原因?
非常感謝!
但在我的情況下,案例B比答案更快。 它沒有任何意義。 –
啊,道歉我誤解你的問題的一部分。那麼這意味着你可能是正確的,轉換爲Mat需要一段時間,當你把它放在內聯。 – namlik
是的,這兩種情況下,A和B都轉換爲墊子,這是不合理的,也許我需要檢查GCC編譯的對象代碼? –