Zeitzähler in c++?
-
Hallo, folgendes Problem: Ich würde gern einen Primzahlenberechnungsalgorithmus wie diesen
#include<cstdio> #include<cstdlib> #include<iostream> using namespace std; int main (void) { bool marker=false; for (int i=1; i<1000000; i++) { marker = false; for (int k=2; k < i ; k++) { if (i % k == 0) { marker=true; } } if (marker == false) { cout << i << "\n"; } } system ("PAUSE"); }verwenden um die Performance der meines Rechner mit der meiner Freunde zu vergleichen. Angblich ist es ja ein probates Mittel um die Rechnerleistung zu bestimmen, wie lang der Rechner braucht um eine besimmmte Menge Primzahlen zu berechnen. Nun müsste aber weil man das mit der Stopuhr vermutlich nicht genau genug messen kann, das Programm nachher die exakte benötigte Zeit ausgeben. Wie bekomme ich das hin?
-
Das geht nicht in C++...dazu brauchst du ne API...wenn Windows...dann darf ich mich mal selbst zitieren...:
CodeFinder schrieb:
Dann gehörst du eigentlich ins WinAPI Forum...
schau dir mal die Funktion QueryPerfomanceCounter() genauer an.
Dazu noch:
DAS 
oder:
DAS 
oder vllt. auch:
DAS 

Musst du dir was zusammen basteln

PS: Forumsuche im WinAPI-Forum

-
Natürlich geht das auch ohne direkten Zugriff auf die WinAPI. Es gibt Boost::date_time das es schön kapselt und somit portabel ist. Schau mal in die Boost Lib rein, da findest du alles was mit Datum und Zeit zu tun hat.
-
CodeFinder schrieb:
Das geht nicht in C++
Es geht schon, zB mit der Funktion clock. Allerdings ist die Auflösung systemabhängig ungenau. Sofern die Laufzeit aber relativ lang ist, kann man die Ungenauigkeit praktisch vernachlässigen.