[問題] 奇怪的計算時間

看板C_Sharp作者 (ㄚ福)時間14年前 (2011/03/31 23:57), 編輯推噓2(206)
留言8則, 6人參與, 最新討論串1/2 (看更多)
我目前在寫一支關於影像色彩空間轉換的程式 是從RGB轉換到YUV 程式結果是沒有問題的 但是在消耗時間上出了一個不像bug的bug 以我們現在用的2560X1920的影像來說 做完一次轉換大約需要1.2秒左右 一開始以為是影像太大的緣故 後來把每一個pixel做轉換的時間記錄下來 發現某些時候在轉換的過程中會莫名停頓一下 會有這種發現是我在函式中放了兩個時間記錄點 DateTime T1 ,T2; 然後去計算這兩點之間差了多少ms 發現有的時候 這兩點之間 就算中間沒有任何程式碼 竟然差了15ms 正常狀況下中間沒有任何程式碼 時間差距應該小於1ms 猜測是可能CPU那段時間去執行別的程序了 不過這樣解釋也怪怪的 因為其他函式也不會這樣 希望有人可以幫我解答 以下是我的程式碼: private void pixel2yuv(ref int[] o, ref double[] y) { DateTime T1 ,T2; double nor_R, nor_G, nor_B; double kr = 0.299, kb = 0.114; nor_R = o[0] / 255.0; nor_G = o[1] / 255.0; T1 = DateTime.Now; T2 = DateTime.Now; Console.Write(CalTime(T1, T2)); //輸出時間記錄點差了多少 nor_B = o[2] / 255.0; y[0] = kr * nor_R + (1 - kr - kb) * nor_G + kb * nor_B; y[1] = 0.436 * ((nor_B - y[0]) / (1 - kb)); y[2] = 0.615 * ((nor_R - y[0]) / (1 - kr)); } 麻煩各位了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.246.32

04/01 01:25, , 1F
datetime.now 本身就有誤差了 只看一次也不準
04/01 01:25, 1F

04/01 04:04, , 2F
或許用Stopwatch會比較準確喔
04/01 04:04, 2F

04/01 09:29, , 3F
推2F
04/01 09:29, 3F

04/01 09:56, , 4F
感謝樓上幾位 我試試!!
04/01 09:56, 4F

04/01 11:40, , 5F
詳細說明: http://goo.gl/gcoT4
04/01 11:40, 5F

04/01 17:03, , 6F
Stopwatch是做研究的好幫手...
04/01 17:03, 6F

04/07 22:41, , 7F
Stopwatch 其實不太準
04/07 22:41, 7F

04/08 09:46, , 8F
不太準,有實證嗎?
04/08 09:46, 8F
文章代碼(AID): #1DbAHnwv (C_Sharp)
文章代碼(AID): #1DbAHnwv (C_Sharp)