看板 C_Sharp 關於我們 聯絡資訊
※ 引述《GreatShot (我要拿Ph.D.!!!)》之銘言: : : 另外,如果要算的次方數很大的話 : : (應該到五次或是六次就應該呼叫了..) : : 建議呼叫 Math.Pow 會快上很多.... : : 裡面用的算法比你自己寫的連乘法好很多.. : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : 這點跟我認知很不一樣 : 我沒看過Math.Pow()的source所以不敢說它演算法好不好 : 我只能作實驗來觀察 : source如下 我利用了你的程式~ "單" 測連乘和Math.Pow()在1~1000次方時連做100次運算.. 我把結果繪成圖表 http://moon.cse.yzu.edu.tw/~s922254/lala/fig.png
http://moon.cse.yzu.edu.tw/~s922254/lala/app.rar (程式) x軸是次方, y軸是時間(us) 紅色是用 Math.Pow計算 藍色是 int 的連乘 (a*a*a*a....) 綠色是 double 的連乘 結果是 Math.Pow所需的時間一直都蠻固定的.. 我想 Math.Pow 應該有做到一定程度的最佳, 而且甚至可能是native code, 所以呼叫的overhead較大.. (其實我只是看圖說故事orz) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.139.145.125
megaman1206:"XD 05/03 19:28
euleramon:請問你指的overhead是說重覆做同樣動作的次數嗎?? 05/03 21:13
GreatShot:overhead你可以當作是一種..額外的負擔 05/03 21:33
Epimenides:overhead就是成本的意思 另推測試圖 清楚明白 05/05 18:16