作者larrywhy (壞)
看板C_Sharp
標題[問題] 關於效能評估
時間Tue Apr 1 14:50:54 2014
我想請問一下,寫出一個程式。
除了 本身設計的演算法去推算時間複雜度之外。
該如何去評估一個程式的效能?
我的想法是:
利用 timer 去計算開始到結束時間
如果是極小的程式 Date time 可能無法計算 (單位太小)
如果是大型程式 一個專案之類的。
利用 timer也不知道是否正確
請問要如何去評估一個程式的運算時間(/性能)呢?
在不同IDE上 可能有顯示運算時間(如:dev c++)
請問visual studio 2012 如何去察看呢?
在不同語言 使用的性能評估方式是否也有不同?
在比較同樣的程式下,(不同語言撰寫) 該如何去評估比較兩個程式的性能呢?
--
千萬不要複製紅色區塊貼上
X
我是胖虎,我是孩子王
y
eeeeeeee
y
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.123.102.72
※ 文章網址: http://webptt.com/m.aspx?n=bbs/C_Sharp/M.1396335058.A.C9A.html
1F:→ iterator:看你想要獲得什麼資訊,單純比較程式區塊的速度, 04/01 14:53
2F:→ iterator:可以使用 System.Diagnostics.Stopwatch 04/01 14:53
3F:→ iterator:Visual Studio Premium 版本以上, 有提供 Profiling 功能 04/01 14:55
4F:→ iterator:可以讓你統計分析整個程式運作時,各個模取的時間及資源 04/01 14:56
請問如果要比較不同語言呢? 這是單純在單一個IDE上去跑測試評估。
我想請問如果像是在程式比賽,ex:ACM 那種? 他們是如何去評估比較的?
※ 編輯: larrywhy (140.123.102.72), 04/01/2014 15:00:06
5F:→ iterator:感覺這類需求的就不是很精確的數字, 04/01 15:13
6F:→ iterator:在程式內或是程式外,前後加上 timer 應該就可以了 04/01 15:13
7F:→ m339606:計算tick應該已經是最準確的了,不過在C#跟JAVA這兩種會有 04/01 20:02
8F:→ m339606:JIT的程式碼似乎是無法互相比較的 04/01 20:04
9F:→ m339606:還有系統負載也有差,畢竟現在os多工處理下去就會有誤差 04/01 20:04
10F:→ m339606:大概現在只有單晶片單工執行才可以準確計算出tick? 04/01 20:06
11F:→ larrywhy:感謝 那我大概知道了! 04/01 22:10
12F:→ Litfal:攤開來,還是可以知道算法在某些指令集下的cpu clocks 04/02 18:39