Angenommen, ich habe langsame und schnelle Versionen eines Codes und möchte eine Beschleunigungszahl melden, die die beiden vergleicht. Ich führe die langsame Version mal und die schnelle Version m- mal aus und produziere die Zeiten ( s 1 , … , s n ) und ( f 1 , … , f m ) . Der einfachste Weg, eine Beschleunigung zu erzielen, besteht darin, die folgenden Mittelwerte zu mitteln: ˉ s Dies berücksichtigt jedoch keine Ausreißer.
Frage : Was ist die beste Statistik für die Meldung von Beschleunigungszahlen?
statistics
publications
Geoffrey Irving
quelle
quelle
Antworten:
Lassen Sie mich zusätzlich zu all dem, was Bill Barth oben bereits gesagt hat, erwähnen, dass die Leute oft den schnellsten von mehreren Läufen melden . Der Grund ist , dass die tatsächliche Laufzeit der ist ideal Laufzeit plus eine beliebige Anzahl von Verlangsamungen von anderen Prozessen resultierenden läuft, OS Verzögerungen, Netzwerkverzögerungen, etc. Da diese alle Lärm interessiert uns nicht, die mit am schnellsten Laufzeit kommt am nächsten zu dem, den wir wirklich wissen wollen.
quelle
yes A is theoretically only ~3x faster
eine Beschleunigung von ~ 3x nicht nicht repräsentativ für die erwartete Beschleunigung, wenn Implementierung A anstelle von B verwendet wird? (Dies ist übrigens ein reales Beispiel)Ich schlage vor, Sie verwenden den Median , um eine statistische Schätzung zu geben. Im Gegensatz zum Mittelwert wird der Median nicht durch Ausreißer verfälscht.
quelle
Wenn die Standardabweichung nicht vernachlässigbar ist, können Sie zwei Box-Plots nebeneinander verwenden, die jeweils mit dem Timing eines der Algorithmen erstellt wurden. Sie sind in der numerischen Analyse keineswegs Standard, aber sie leisten hervorragende Arbeit bei der Anzeige dieser Art von Informationen.
quelle