003
16.07.2010, 00:13 Uhr
0xdeadbeef
Gott (Operator)
|
Ah. Naja, verlässliche Performance-Messungen sind recht kompliziert; die Laufzeit deines Programms hängt in der Realität nicht allein von deinem Programm ab - was sonst noch auf der Maschine läuft, das Verhalten des Betriebssystems und der Peripheriegeräte, bei Netzwerkanwendungen auch das anderer Systeme spielen eine Rolle.
Welche Messgrößen letztendlich für dich interessant sind, ist manchmal schwierig festzustellen (deswegen gibt es beispielsweise Profiler).
Das vorausgeschickt, ein einfacher Weg, relativ brauchbare Laufzeitmessungen für kleine Programmteile durchzuführen, ist folgender:
C++: |
#include <ctime> #include <iostream>
int main() { std::clock_t time_beg = std::clock();
// Programmteil hier ein paar Millionen mal laufen lassen
std::clock_t time_end = std::clock();
std::cout << static_cast<double>(time_end - time_beg) / CLOCKS_PER_SEC << std::endl; }
|
std::clock() gibt die vom Programm benutzte CPU-Zeit zurück. Damit wird die Zeit, die das Betriebssystem mit anderen Programmen verbringt, nicht berücksichtigt, was eine große Variable eliminiert. Die Ergebnisse werden immer noch variieren, aber es sollte dir zumindest eine Größenordnung geben. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 16.07.2010 um 00:25 Uhr von 0xdeadbeef editiert. |