Ich muss die Laufzeit eines Algorithmus so genau wie möglich messen. Dazu gehe ich iterativ mit verschiedenen Eingabegrößen durch und messe es dann pro Größe 20mal. Problem dabei ist, dass es sehr viele Messwerte werden und diese sich nur wenig voneinander unterscheiden. Ich muss also so genau wie irgends möglich messen.
Bisher verwende ich die time.h und deren clock() Methode, allerdings lässt die Genauigkeit hier zu wünschen übrig. Offenbar ist diese Funktion sogar vom Prozessor abhängig. Bei Intel hab ich ne Genauigkeit von 10ms, bei AMD ne Genauigkeit von etwa 16ms. Das reicht einfach nicht. 1ms is das Mindeste was ich bräuchte.
Die simple Vergrößerung der Schleifenzahl ist keine Option, da der Algorithmus voraussichtlich mehr oder weniger exponentiell ausbrechen wird und bei größeren Eingaben das Benchmark sonst tage dauern würde.
Kennt jemand von Euch alternative Zeitmessfunktionen außer time.h? Optimeraler Weise sollte es natürlich noch ANSI sein, da der Mist auch unter Linux laufen soll...
Bisher verwende ich die time.h und deren clock() Methode, allerdings lässt die Genauigkeit hier zu wünschen übrig. Offenbar ist diese Funktion sogar vom Prozessor abhängig. Bei Intel hab ich ne Genauigkeit von 10ms, bei AMD ne Genauigkeit von etwa 16ms. Das reicht einfach nicht. 1ms is das Mindeste was ich bräuchte.
Die simple Vergrößerung der Schleifenzahl ist keine Option, da der Algorithmus voraussichtlich mehr oder weniger exponentiell ausbrechen wird und bei größeren Eingaben das Benchmark sonst tage dauern würde.
Kennt jemand von Euch alternative Zeitmessfunktionen außer time.h? Optimeraler Weise sollte es natürlich noch ANSI sein, da der Mist auch unter Linux laufen soll...