05. september 2002 - 15:41
Der er
10 kommentarer og 1 løsning
Tage tid på et program.
Go'daw folk, hehe...Anyways Jeg gik og undrede mig er der nogle måder at tage tid på hvor lang tid et program er om at f.eks. køre i gennem et loop?
Annonceindlæg fra SoftwareOne
05. september 2002 - 15:45
#1
DWORD dwStart = timeGetTime(); ... DWORD dwTimeDiff = timeGetTime() - dwStart; // dwTimeDiff indeholder nu tidsforskellen i ms
05. september 2002 - 15:46
#2
Husk: #include <Mmsystem.h> samt at linke med Winmm.lib Dette virker under Windows (du skriver ikke hvilket operativsystem...)
05. september 2002 - 15:48
#3
Ah yah, jeg vil helst ha' det i 'pure vanilla' C++, så det kan compiles på de fleste OS's.
05. september 2002 - 17:32
#4
05. september 2002 - 17:48
#5
Hmmm Ok så jeg kunne gøre sådan her: #include <iostream> #include <time.h> using namespace std; // Ved godt jeg ikke burdte bruge det globalt, men feh.. int main(){ int TAL = 0; cout<<"TAL! :"; cin>>TAL; for(int i = 0; i <= TAL; i++){} cout<<"Loopet kørte i "<<clock()<<" Seconder."; return 0; }
05. september 2002 - 18:06
#6
du bør jo have et reference punkt.. #include <iostream> #include <time.h> using namespace std; // Ved godt jeg ikke burdte bruge det globalt, men feh.. int main(){ int TAL = 0; cout<<"TAL! :"; cin>>TAL; double ref = clock(); for(int i = 0; i <= TAL; i++){} double elapsed = clock() - ref; cout<<"Loopet kørte i "<<elapsed<< " clock ticks" << endl; return 0; }
05. september 2002 - 18:17
#7
Når jeg kompilerer programmer i Dev-C++ og kører det får jeg: TAL! :5000 Loopet k°rte i 0 clock ticks
05. september 2002 - 18:22
#8
ja, for der sker jo ikke noget i dit loop - det kører hurtigere end målingen kan måle
05. september 2002 - 18:32
#9
prøv evt. at kigge lidt på dette: #include <iostream> #include <stdlib.h> #include <time.h> using namespace std; const int size = 20000; int data[size]; void generateData(int data[]) { srand(time(0)); for(int i=0;i<size;++i) data[i] = (rand()%50)+10; } void insertionSort(int data[]) { for(int i=1;i<size;++i) { int j; int temp = data[i]; for(j=i;j>0 && temp<data[j-1];--j) data[j] = data[j-1]; data[j] = temp; } } int main(int argc, char **argv) { double ref = clock(); generateData(data); insertionSort(data); double elapsed = clock() - ref; cout << "Det tog: " << elapsed << " clock ticks" << endl; return 0; }
05. september 2002 - 18:33
#10
hos mig giver det: Det tog: 1852 clock ticks
05. september 2002 - 18:33
#11
Ah ok, Takker så, her ta' nogle point og del dem med konen eller noget.
Kurser inden for grundlæggende programmering