Exakte Laufzeit eines Programms messen

C

Chack

Mitglied
Thread Starter
Dabei seit
14.05.2004
Beiträge
69
Reaktionspunkte
0
Hallo,

Ich schreibe an einem Projekt für die Uni, habe den Dijkstra Algorithmus in Java und Ocaml implementiert. Ziel des Projekts ist es die Laufzeit des gleichen Algorithmus in verschieden Sprachen zu messen/vergleichen.

Gibt es ein Tool mit dem man die Laufzeit des Algorithmus messen kann? Vielleicht gibt es ja sogar einen Unix befehl? Top wäre natürlich wenn ihr sowas auch noch für Windows kennt, damit man noch Cross-Platform vergleiche machen kann.

Noch ne Frage für die Experten:
Damit beide Algorithmen auf den gleichen Daten arbeiten und nicht umständlich hin und her kopiert werdne muss, wäre es am besten, wenn die die Daten aus einer Datei auslesen. Allerdings soll die Zeit, die zum auslesen der Daten gebraucht wurde nicht die Testdaten verfälschen. Gibt es irgendwie eine möglichkeit die Laufzeit verschiedener Unterschritte des Programms zu messen? Ich hab mir zum Beispiel gedacht das es vielleicht innerhalb von java/ocaml eine Variable gibt, die eine hochpräzise Timestamp enthält. Gibt es da sowas?
 
der unix befehl ist "time", aber da wirst du wohl nicht dazu kommen, das laden der daten auszuschliessen...

was wohl besser für deine zwecke wäre, ist ein profiler...
sollte es in jeder besseren java prog umgebung gegeben...
 
merke dir doch einfach im code 1x die systemzeit VOR dem algorithmus und 1x DANACH?

ergo: ENDZEIT - STARTZEIT = DAUER ???
 
entprechenden java code findest du übrigens hier:
http://adorno.mi.fh-wiesbaden.de/~barth/ads/prakt/ADSTool.java

ich weiß zwar nicht, warum informatiker immer noch mit ML derivaten gequält werden, aber den entsprechenden code dafür in ocaml musst du dir per google schon selber suchen, bzw nachgucken wie man in ocaml sich system ticks holt...
 
hehe ich kann ml auch nicht leiden, aber es musste eine funktionale Sprache sein (kann ich generell nciht leiden, macht alles so kompliziert).

Ich werde das mit der Systemzeit lösen, dh einmal bevor der kritische Programmteil startet Syszeit ausgeben und einmal danach. Thx für die Info :)
 
du tust dir wahrscheinlich den größten gefallen, wenn du dir die zeiten in unixtime "merkst" ... falls es kein hochauflösender timer sein muss ...
 
Zuletzt bearbeitet:
Zurück
Oben Unten