Discussion:
[問題] 時間上的問題
(时间太久无法回复)
加油啊...
2006-10-02 20:24:25 UTC
Permalink
請問各位高手

我執行一段程式

上下用
long beginTime = System.currentTimeMillis();//開始計時

程式碼

long endTime = System.currentTimeMillis();
System.out.println("所需時間:\t" + (endTime - beginTime)+ "毫秒");

這樣把時間計算出來

同樣的題目,我執行五次或者更多次

他會出現很多0毫秒的情況,

程式碼執行的速度確實是很快,但是應該在15~30毫秒左右

但是同樣題目用迴圈執行好幾次 都會出現個幾次0毫秒的情況

不曉得是哪裡出了問題!!

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.101.60
加油啊...
2006-10-02 21:51:12 UTC
Permalink
※ 引述《PsMonkey (痞子軍團團長)》之銘言:
: ==站內信件==
: ※ 引述《Kenny042183 (加油啊...)》之銘言:
: ^^^^
: 我是不知道這個「應該」是怎麼來的
: 不過,如果是看程式碼得知的話
: 這位大大,您應該專供效能測量這個領域... [跪拜之 Orz]
哈......不是耶 我只是寫普通的程式
: (光看程式碼,我只聽說過算時間 or 空間複雜度
: 沒聽說有人可以直接說「這應該是要算多久....」)

是我有用測時間的方法去看要執行多久

但是,常常時間有的是15 16毫秒 不然就是30 31毫秒

有時候又會有0毫秒的!!

只是認為同樣題目應該時間不會差這麼多才是!!
: : 但是同樣題目用迴圈執行好幾次 都會出現個幾次0毫秒的情況
: : 不曉得是哪裡出了問題!!
: 人的眼睛看到的東西,只要一秒鐘超過 24 個畫面
: 就會覺得他是連續的... 換句話說,就是中間沒有間隔
: 你們家的電腦,他處理的速度快到讓自己分辨不出來
: 阿你是要他怎樣? 拜託他跑慢一點嗎?
: 解決方法是,國小教的,測量紙張厚度的方法....
: 另外,相關議題可以參考這篇
: http://www.javaworld.com.tw/jute/post/view?bid=29&id=37188

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.101.60
n/a
2006-10-03 01:51:45 UTC
Permalink
// 用C寫個範例比較容易理解
// 如果用java寫的話,結果會跟不精準的一樣
// 除非有特殊方法...(這我就不了解了)

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

void main()
{
DWORD thisTick, lastTick;
LARGE_INTEGER thisClock, lastClock, Frequency;

QueryPerformanceFrequency( &Frequency );

lastTick = GetTickCount();
QueryPerformanceCounter( &lastClock );
for ( int i = 0; i < 10; i++ )
{
thisTick = GetTickCount();
QueryPerformanceCounter( &thisClock );
printf( "不精準時間差: %dms.\n", thisTick - lastTick );
printf( "精準的時間差: %0.2fms.\n",
(double)( thisClock.QuadPart - lastClock.QuadPart )
/ (double)( Frequency.QuadPart ) * 1000 );
printf( "\n" );
Sleep(1);
}
system( "PAUSE" );
}

/* 結果:

不精準時間差: 0ms.
精準的時間差: 0.00ms.

不精準時間差: 0ms.
精準的時間差: 1.95ms.

不精準時間差: 0ms.
精準的時間差: 3.88ms.

不精準時間差: 15ms.
精準的時間差: 5.87ms.

不精準時間差: 15ms.
精準的時間差: 7.79ms.

不精準時間差: 15ms.
精準的時間差: 9.74ms.

不精準時間差: 15ms.
精準的時間差: 11.71ms.

不精準時間差: 15ms.
精準的時間差: 13.65ms.

不精準時間差: 15ms.
精準的時間差: 15.60ms.

不精準時間差: 15ms.
精準的時間差: 17.55ms.

請按任意鍵繼續 . . .

*/

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.60.29.254

继续阅读narkive:
Loading...