我在**裡使用了 eigen,發現程式很慢,於是我用效能分析器分析,eigen竟然耗時一半有餘。。。
而且最耗時的是eigen::vector3d
物件的建立
/銷毀
/normalize()
/賦值
等最最基本的操作,我感覺眼睛有點發黑。
於是趕緊上網查這是怎麼回事,網上給出解釋,eigen做了很多檢查,在release模式的時候,就不檢查了。舒了一大口氣。
網友同時指出,使用巨集eigen_no_debug
或ndebug
,可以避免這些檢查。
於是我就試了下。先上**,再看測試效果。
#include
#include
#include
void
testeigennorm()
void
testarraynorm()
;double len =0;
for(
int i =
0; i <
10000
;++i)
}int
main()
測試結果:
debug
eigen normalize time :
0.030172
array normalize time :
0.000202
debug + eigen_no_debug
eigen normalize time :
0.038975
array normalize time :
0.000215
debug + ndebug
eigen normalize time :
0.019855
array normalize time :
0.000220
release
eigen normalize time :
0.000130
array normalize time :
0.000132
經過實驗
release模式下,eigen效能***,而且eigen內部做了大量矩陣的優化處理。可以放心使用。巨集
eigen_no_debug
和ndebug
,沒什麼大用。
效能測試 效能測試步驟
針對此次庫內作業效能測試,梳理一下期間的工作流程 梳理已有的介面指令碼,確認需要做效能測試的幾個介面,即使用率高,對效能有要求的幾個主要介面。結合頁面的操作,和確認的介面,梳理具體的業務邏輯 同時,請開發人員部署了測試環境。測試環境的伺服器指標,盡量和生產環境一致。部署的時候,負載均衡等情況也盡量和...
高效能 Eigen矩陣庫使用事項
1 eigen庫只有矩陣運算功能。eigen相對專一,面對四元數 統計 微積分等高階運算功能,我建議還是使用專業的科 算庫。2 四階或以下的矩陣,尤其是固定大小的矩陣如 eigen matrix2i,通常進行了計算優化。3 注意一下自身和非自身的變化 說明自身 非自身轉置 transposeinpl...
效能測試之前端效能測試
本次總結總共分為以下部分 1.如何衡量乙個系統是否要做壓測 2.壓測的準備過程 3.壓測工具選擇 4.壓測資料以及報告結果相關 1.如何衡量乙個系統是否要做壓測 首先需要衡量乙個系統是否需要壓測,從以下角度考慮 從兩個角度進行分析 a.業務角度 明確系統是對內使用還是對外使用,使用人數是多少,如果使...