精華區beta C_and_CPP 關於我們 聯絡資訊
在 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