[問題] 如何計算一個 function 總共做了多少運算
遇到的問題: (題意請描述清楚)
我的程式中有一個 function 是很常被使用的
ex. 影像播放軟體裡的 IDCT
想要評估這個 function 每執行一次,執行了多少個運算
例如浮點運算 100 個,整數運算 80 個
請問有什麼方法呢?
我目前的想法
1. 直接統計我所寫的 code 裡 + - * / 個數
但我擔心 compiler 有做最佳化,直接算與實際值相差太大。
2. 把 function asembly 出來,算指令數
擔心太複雜,難以 trace
不曉得大家有沒有建議的方法
謝謝~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.104.137.29
→
06/09 21:57, , 1F
06/09 21:57, 1F
平台是 x86 64bit, linux, gcc
但是把 C code funcion 搬到 windows 也不是難事
→
06/10 00:58, , 2F
06/10 00:58, 2F
這方法好像不錯~
可是這是不是會影響 optimization
感覺這個算出來的結果,也許會比較像直接統計source code的結果~
※ 編輯: zstar 來自: 203.73.49.118 (06/10 08:04)
推
06/10 09:15, , 3F
06/10 09:15, 3F
推
06/10 11:08, , 4F
06/10 11:08, 4F
→
06/10 11:09, , 5F
06/10 11:09, 5F