[問題] 關於效能評估

看板C_Sharp (C#)作者 (壞)時間11年前 (2014/04/01 14:50), 11年前編輯推噓0(0012)
留言12則, 4人參與, 最新討論串1/1
我想請問一下,寫出一個程式。 除了 本身設計的演算法去推算時間複雜度之外。 該如何去評估一個程式的效能? 我的想法是: 利用 timer 去計算開始到結束時間 如果是極小的程式 Date time 可能無法計算 (單位太小) 如果是大型程式 一個專案之類的。 利用 timer也不知道是否正確 請問要如何去評估一個程式的運算時間(/性能)呢? 在不同IDE上 可能有顯示運算時間(如:dev c++) 請問visual studio 2012 如何去察看呢? 在不同語言 使用的性能評估方式是否也有不同? 在比較同樣的程式下,(不同語言撰寫) 該如何去評估比較兩個程式的性能呢? -- 千萬不要複製紅色區塊貼上 X 我是胖虎,我是孩子王 y eeeeeeee y -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.123.102.72 ※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1396335058.A.C9A.html

04/01 14:53, , 1F
看你想要獲得什麼資訊,單純比較程式區塊的速度,
04/01 14:53, 1F

04/01 14:53, , 2F
可以使用 System.Diagnostics.Stopwatch
04/01 14:53, 2F

04/01 14:55, , 3F
Visual Studio Premium 版本以上, 有提供 Profiling 功能
04/01 14:55, 3F

04/01 14:56, , 4F
可以讓你統計分析整個程式運作時,各個模取的時間及資源
04/01 14:56, 4F
請問如果要比較不同語言呢? 這是單純在單一個IDE上去跑測試評估。 我想請問如果像是在程式比賽,ex:ACM 那種? 他們是如何去評估比較的? ※ 編輯: larrywhy (140.123.102.72), 04/01/2014 15:00:06

04/01 15:13, , 5F
感覺這類需求的就不是很精確的數字,
04/01 15:13, 5F

04/01 15:13, , 6F
在程式內或是程式外,前後加上 timer 應該就可以了
04/01 15:13, 6F

04/01 20:02, , 7F
計算tick應該已經是最準確的了,不過在C#跟JAVA這兩種會有
04/01 20:02, 7F

04/01 20:04, , 8F
JIT的程式碼似乎是無法互相比較的
04/01 20:04, 8F

04/01 20:04, , 9F
還有系統負載也有差,畢竟現在os多工處理下去就會有誤差
04/01 20:04, 9F

04/01 20:06, , 10F
大概現在只有單晶片單工執行才可以準確計算出tick?
04/01 20:06, 10F

04/01 22:10, , 11F
感謝 那我大概知道了!
04/01 22:10, 11F

04/02 18:39, , 12F
攤開來,還是可以知道算法在某些指令集下的cpu clocks
04/02 18:39, 12F
文章代碼(AID): #1JEc7IoQ (C_Sharp)
文章代碼(AID): #1JEc7IoQ (C_Sharp)