Exakte Laufzeit eines Programms messen

Dieses Thema im Forum "Mac OS X Entwickler, Programmierer" wurde erstellt von Chack, 02.12.2004.

  1. Chack

    Chack Thread Starter MacUser Mitglied

    Beiträge:
    68
    Zustimmungen:
    0
    MacUser seit:
    14.05.2004
    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?
     
  2. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    46.831
    Zustimmungen:
    3.633
    MacUser seit:
    23.11.2004
    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...
     
  3. Katana

    Katana MacUser Mitglied

    Beiträge:
    989
    Zustimmungen:
    0
    MacUser seit:
    30.08.2004
    merke dir doch einfach im code 1x die systemzeit VOR dem algorithmus und 1x DANACH?

    ergo: ENDZEIT - STARTZEIT = DAUER ???
     
  4. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    46.831
    Zustimmungen:
    3.633
    MacUser seit:
    23.11.2004
    entprechenden java code findest du übrigens hier:
    [DLMURL]http://adorno.mi.fh-wiesbaden.de/~barth/ads/prakt/ADSTool.java[/DLMURL]

    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...
     
  5. Chack

    Chack Thread Starter MacUser Mitglied

    Beiträge:
    68
    Zustimmungen:
    0
    MacUser seit:
    14.05.2004
    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 :)
     
  6. Katana

    Katana MacUser Mitglied

    Beiträge:
    989
    Zustimmungen:
    0
    MacUser seit:
    30.08.2004
    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: 04.12.2004

Diese Seite empfehlen