Meine Situation
Ich schreibe ein Papier mit einem von mir entwickelten Softwaremodul und möchte dessen Laufzeit mit anderen Modulen für dieselbe Aufgabe vergleichen. Ich bin mir der Nachteile von Laufzeitversuchen bewusst, gehe aber bitte davon aus, dass es in meinem Fall keinen Weg daran vorbei gibt. (Ich kann und kann theoretisch einige Eigenschaften ableiten, aber es reicht nicht für alles aus.)
Die spezifischen Szenarien, die ich für das Benchmarking verwenden möchte, haben zwei Parameter: die Komplexität des Problems und einen zufälligen Startwert r, der das detaillierte Problem bestimmt. Hauptsächlich möchte ich die Abhängigkeit von n zeigen . Nach vorläufigen Untersuchungen und der Theorie ist der Einfluss von r auf die Laufzeit gering oder vernachlässigbar. Eine einzelne Aufgabe dauert höchstens zehn Minuten.
Aktuelle Frage
Ich suche nach einem allgemein akzeptierten oder veröffentlichten Verfahren zur Durchführung solcher Experimente oder zumindest nach einer Liste häufiger Fallstricke (idealerweise veröffentlicht).
Was ich bisher gefunden habe
Nichts. Internet-Suchen ergeben alle möglichen nicht zusammenhängenden Ergebnisse, aber dann verwende ich möglicherweise nicht die richtige Terminologie. Das Einfügen des Keyword- Minimums, von dem ich weiß, dass es ein guter Standard ist (siehe unten), hat auch nicht geholfen.
Wie würde ich das machen?
Führen Sie alle Experimente auf demselben Computer mit möglicherweise störender Software wie einer GUI aus, die so weit wie möglich deaktiviert ist.
Unterwerfen Sie alle Module derselben Auswahl von Szenarien, dh demselben und r .
Testen Sie für jedes Szenario die verschiedenen Module direkt nacheinander in zufälliger Reihenfolge. Mit anderen Worten, die Schleife über die verschiedenen Module ist die innerste. Dies sollte eine Verzerrung der verschiedenen Module aufgrund langsamer Schwankungen der Maschinenleistung (z. B. aufgrund von Temperaturänderungen) vermeiden. Die zufällige Reihenfolge sollte eine Verzerrung durch Effekte wie Caching oder ein Modul vermeiden, das immer nach demselben getestet wird.
Antworten:
CC McGeochs "A Guide to Experimental Algorithmics" ist eine gute Referenz für
quelle
Geben Sie zusätzlich zur verstrichenen Zeit für jeden Lauf Sekunden des Benutzer- und Systemmodus sowie die Gesamtzahl der IP-Pakete und die Gesamtzahl der Festplatten-E / A an, um zu überprüfen, ob einige Zahlen durchweg "niedrig" sind und die verstrichene Zeit vernachlässigbar beeinflussen.
Auf https://wiki.freebsd.org/BenchmarkAdvice bieten PHK und andere gute Ratschläge an, einschließlich
quelle