2009-06-01 7 views
2

Ich schrieb eine Anwendung, um eine Protokolldatei mit Haskell zu analysieren. Wenn ich es mit der gleichen Protokolldatei ausführen, manchmal kostet es 30s und kostet manchmal 20s, die Ausführungszeit unterscheidet sich um bis zu 10 Sekunden.Ausführen einer gleichen Haskell-Anwendung nehmen Diff Zeit

Warum gibt es so große Unterschiede in der Laufzeit?

Antwort

1

Der Unterschied wird wahrscheinlich durch andere Prozesse verursacht, die gleichzeitig auf dem System ausgeführt werden.

+0

aber ich die gleiche Funktion implementieren Python-Sprache verwenden, dann führen Sie das Python-Skript, verbrachte es fast die gleiche Zeit, um 20s – yjfuk

+0

Wie oft haben Sie jeweils getestet? Vielleicht ändert sich der Python genauso, aber du hast ihn einfach nicht oft genug ausgeführt, um ihn zu sehen? – Herms

+0

Ich habe es so oft versucht, aber das Ergebnis war das gleiche – yjfuk

3

Versuchen Sie, die Verarbeitungszeit von der Dateizugriffszeit zu trennen.

Lesen Sie die gesamte Datei in den Speicher, verfolgen Sie diese Zeit, verarbeiten Sie dann die Daten in Ihren Speicherstrukturen und verfolgen Sie diese Zeit separat.

Mein Bauchgefühl ist, dass der Dateizugriff der zufällige Beiträger ist. Darminstinkt ist kein guter Ersatz für einen Profiler.