اگر کسی تابعی در C++ سراغ دارد که زمان اجرای برنامه را به میلی ثانیه حساب می کند ممنون می شوم بگوید
Printable View
اگر کسی تابعی در C++ سراغ دارد که زمان اجرای برنامه را به میلی ثانیه حساب می کند ممنون می شوم بگوید
من تو ++VC نوشتم . اینجوری :
#include <ctime>
clock_t cl=clock()
cout << clock()-cl << endl;
توی TC هم همینطوری میشه فقط الان یادم نیست که تابع clock توی کدوم سرفایله.
اگه برنامه ات تحت Windows هست بهترین روش خواندن Hardware Clock است:
#ifndef __FC_PROFILER__H_
#define __FC_PROFILER__H_
#include <vcl.h>
#include <windows.h>
//------------------------------------------------------------------------------
class TFCProfiler
{
private:
__int64 Frequency;
__int64 StartTime;
__int64 StopTime;
public:
TFCProfiler()
{
StartTime = 0;
StopTime = 0;
::QueryPerformanceFrequency((LARGE_INTEGER*) &Frequency);
}
~TFCProfiler()
{
}
public:
void Start()
{
::QueryPerformanceCounter((LARGE_INTEGER*) &StartTime);
}
void Stop()
{
::QueryPerformanceCounter((LARGE_INTEGER*) &StopTime);
}
double GetElapsed() const
{
const double t = static_cast <double> (StopTime - StartTime) / Frequency;
return t;
}
AnsiString GetElapsed(int Point) const
{
AnsiString Str, Frm;
Frm.printf("%c.%df sec", '%', Point);
Str.printf(Frm.c_str(), GetElapsed());
return Str;
}
};
//------------------------------------------------------------------------------
#endif // __FC_PROFILER__H_
include <time.h#
include <stdio.h #
} (int main(void
;clock_t start, end
; start ()= clock
;هر عملیکه میخوای که میخوای وقتشو بگیری
{ ; () end = clock
و برایاینکه حاصل رو به ثانیه ببینی تفاضل endوstartرو بر ماکروی CLK_TCKتقسیم میکنی ودر متغیرت میزاری.