윈도우즈 API 함수중에 GetTickCount란 함수를 사용하시면 됩니다..
윈도우가 시작된 이후로 1/1000초 단위 시간을 알려주는 함수이죠..
GetTickCount의 리턴값은 DWORD 인데 델파이에선 integer형에 해당합니
다.. (참고 : 윈도우즈 API를 사용할때 자주 등장하는 데이터형은 델파
이 설치시 SOURCE\RTL\WIN\WINDOWS.PAS 화일을 참조하면 델파이에서는
어떤 형이 사용되는지 알 수 있습니다..)
아래와 같이 하시면 시간을 측정할 수 있습니다..
procedure TForm1.Button1Click(Sender: TObject);
var
i, j : Longint ;
iStartTime, iEndTime : DWORD ;
begin
StartTime := GetTickCount ;
j := 0 ;
for i:=0 to 10000000 do
j := j + i ;
EndTime := GetTickCount ;
Label1.Caption
:= FormatFloat('#,##0.00',(EndTime-StartTime)/1000) ;
end;
위의 예제는 제 컴퓨터 (486DX4-100에서 약 0.62초 정도 걸리더군요..)
참고로 GetTickCount 함수의 리턴값은 도움말에서도 볼 수 있듯이 윈도
우95로 부팅한후 끄지 않고 계속 켜 놓았을 경우 49.7일 이후엔 제대로
값을 넘겨주지 못합니다..
하지만 제 생각엔 윈95든 PC든 둘중 하나가 먼저 맛이 가겠죠..
유닉스나 NT에 워크스테이션급이면 몰라도..
기람..
미친병아리 서비였네용.. 삐약~ !!
번호:707/707 등록자:CHEONG 등록일시:98/01/15 09:33 길이:22줄
제 목 : [질문] procedure 를 실행하는데 걸린시간을 알고싶습니다. !!
안녕하세요 ? 이청운 입니다.
제가 어떤 procedure 를 만들었는데,그 걸 실행하는 시간을 정확히 알
아내고 싶습니다.
백분의일초 단위로 알아내는 방법은 없을까요 ?
부탁드립니다.
예) procedure TForm1.Test;
begin
// 시작
.
.
.
.
명령수행...
.
.
.
// 끝 --> 시작에서 부터 여기 까지 걸린시간을 알고싶습니다.
end;
|