السلام عليكم ورحمة الله وبركاته
كنت ابحث عن طريقة لحساب الوقت الذي يستغرقه البرنامج في العمل ، وجدت طريقتان جيدة واستخدمتها وهي تعمل 100% .
الطريقة الأولى:
#include <iostream>
using std::cout;
#include <sys/timeb.h>
int main()
{
struct _timeb st_time_start;
struct _timeb st_time_end;
_ftime( &st_time_start );
// get start time in milliseconds
long start = st_time_start.millitm;
//Start
for ( int i=0; i < 1000; i++ )
//for ( int j=0; j < 1000; j++ )
//for ( int k=0; k < 1000; k++ )
cout <<"Welcome!";
//End
_ftime( &st_time_end );
cout <<"Operation took: "<<( st_time_end.millitm-start )<<" ms\n";
return 0;
}الطريقة الثانية وهي باستخدام class :
#include <iostream>
using std::cout;
using std::endl;
#include <windows.h>
class CPrecisionTimer
{
LARGE_INTEGER lFreq, lStart;
public:
CPrecisionTimer()
{
QueryPerformanceFrequency( &lFreq );
}
inline void Start()
{
QueryPerformanceCounter( &lStart );
}
inline double Stop()
{
LARGE_INTEGER lEnd;
QueryPerformanceCounter( &lEnd );
return ( double( lEnd.QuadPart - lStart.QuadPart) / lFreq.QuadPart) * 1000;
}
};
int main()
{
CPrecisionTimer myTimer;
myTimer.Start();
//Start
for ( int i=0; i < 1000; i++ )
//for ( int j=0; j < 1000; j++ )
//for ( int k=0; k < 1000; k++ )
cout <<"Welcome!";
//End
cout <<"Operation took: " << myTimer.Stop() << endl;
return 0;
}