在 VC++ 中, 我目前查到僅可用 _ftime 取到 millisecond 的 time value,
#include <stdio.h>
#include <sys/timeb.h>
#include <time.h>
void main( void )
{
struct _timeb timebuffer;
char *timeline;
_ftime( &timebuffer );
timeline = ctime( & ( timebuffer.time ) );
printf( "The time is %.19s.%hu %s", timeline,
timebuffer.millitm, &timeline[20] );
}
不曉得是否有其它的做法或 function 可以讓我取到 microsecond???
我有前人在 UNIX 上 run 的 code 可以取到 microsecond, 可惜目前
window 平台的 VC++ 並不支援. 是否有人可以知道有關的做法跟這 code
的做法類似(並可以在 VC++ 上 run)........:)
#include <sys/time.h>
void time_check(type, cpu_time)
int type; /* START or GET_TIME */
float *cpu_time;
{
static int timei,timef;
static int timedi, timedf, timesec;
struct itimerval value1, ovalue1;
if (type == 0) { /* Time Check. */
value1.it_interval.tv_sec=0;
value1.it_interval.tv_usec=0;
value1.it_value.tv_sec=1000000L; /* second */
value1.it_value.tv_usec=0; /* micro-second */
setitimer(1,&value1,&ovalue1); /* 1: Virtual time */
getitimer(1,&value1);
timedi = value1.it_value.tv_sec;
timei = value1.it_value.tv_usec;
} else { /* GET_TIME */
/* time check */
getitimer(1,&value1);
timedf = value1.it_value.tv_sec;
timef = value1.it_value.tv_usec;
timedf = timedi - timedf ; /* decrement */
if (timedf == 0) {
timesec = 0;
timef = 0;
*cpu_time = 0.0;
}
else {
timef = timef -timei;
timesec = timedf - 1;
timef = 1000000 - timef;
*cpu_time = timesec + timef/1000000.0;
}
}
}
Thanks for your help.........^_^........
--
Telnet 140.112.8.172 (titan.cc.ntu.edu.tw)
--
※ Origin: 程式設計樂園 ◆ From: arbor.ee.ntu.edu.tw
> -------------------------------------------------------------------------- <
發信人: bigmac.bbs@cszone.cc.ntu.edu.tw (我是河馬), 看板: C_and_CPP
標 題: Re: 請問: VC++中是否可以取到 micro second 的時間 …
發信站: 程式設計樂園(CSZone) (Mon Dec 28 23:53:38 1998)
轉信站: Ptt!CSZoneNews!CSZone
※ 引述《brad (Zzzzzzzz)》之銘言:
: 不曉得是否有其它的做法或 function 可以讓我取到 microsecond???
: 我有前人在 UNIX 上 run 的 code 可以取到 microsecond, 可惜目前
: window 平台的 VC++ 並不支援. 是否有人可以知道有關的做法跟這 code
: 的做法類似(並可以在 VC++ 上 run)........:)
Pentium 以上的 CPU 應該有一個暫存器,記錄 clock 的次數,
所以比 microsecond 還高吧?
以下是我手邊一個 for Delphi 的程式的說明
Zprofiler : a tool for optimizing Delphi programs on Pentium computers. version 2.20
-------------------------------------------------------------------------------------
This utility component enables the assessment of execution times of code fragments
with a 0.01 microsecond resolution. It is based on the cpu clock of Pentium computers,
using the RDTSC instruction.
我猜查一下 RDTSC 應該可以找到不少﹍
--
※ Origin: 程式設計樂園 ◆ From: h223.s108.ts30.hinet.net