Borland C++ Builder dla początkujących
Obliczanie czasu działania kodu
Czasami przydaje się nam policzyć jak szybko wykonuje się dany
kod lub po prostu zliczyć czas do innego użytku, znam trzy sposoby na to, różnią
się one dokładnością przy podawaniu różnicy czasów:
I - dokładność do 1 sekundy
Unit1.cpp
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TDateTime czas, czasStart, czasEnd;
czasStart = Now();
for (long int i = 0; i <= 100000000;
i++);
czasEnd = Now();
czas = czasEnd - czasStart;
Label1->Caption = czas;
}
II - sposób dokładność do 0,001 sekundy:
Unit1.cpp
void __fastcall TForm1::Button3Click(TObject *Sender)
{
float Start = GetTickCount();
for (long int i = 0; i <= 100000000;
i++);
float End = GetTickCount();
Label1->Caption = FloatToStr((End
- Start) / 1000) + " s.";
}
III sposób - dokładność do 0,0000000000001 s
Unit1.cpp
void __fastcall TForm1::Button2Click(TObject *Sender)
{
LARGE_INTEGER lpFrequency;
LARGE_INTEGER lpPerformanceCountStart, lpPerformanceCountEnd;
if (QueryPerformanceFrequency(&lpFrequency)
!= 0)
{
QueryPerformanceCounter(&lpPerformanceCountStart);
for (long int i =
0; i <= 100000000; i++);
QueryPerformanceCounter(&lpPerformanceCountEnd);
double Frequency
= lpFrequency.QuadPart;
double End = lpPerformanceCountEnd.QuadPart;
double Start = lpPerformanceCountStart.QuadPart;
Label1->Caption
= FloatToStr((End - Start) / Frequency) + " s.";
}
}
Wyszukiwarka
Podobne podstrony:
miscellaneous19miscellaneous12Linux IPCHAINS HOWTO MiscellaneousFading Suns Ships MiscellaneousMiscellaneous Commandsmiscellaneous18miscellaneous02miscellaneous03miscellaneous16Miscellaneous Optionsmiscellaneous15Łysiak Waldemar Miscellaneamiscellaneous07Miscellaneous Programsmiscellaneous01miscellaneous04więcej podobnych podstron