Profiling: Seltsames Verhalten



  • Hallo,
    Ich habe ein FDCT Programm sowie zwei Stimuli Dateien mit 513 bzw 99 Datensätzen. Ich benötige die Ausführungszeit des Programms für beide Stimulisätze für unterschiedliche Ausführungshäufigkeiten. Also habe ich ein Shellscript geschrieben und gprof als Profiler verwendet. Ich fange bei 100 Ausführungen an, vorher lässt sich kaum was messen, und gehe in 100er Schritten hoch bis 1000. Für die Stimuli Datei mit 513 Datensätzen kriege ich einen schönen proportionalen Zusammenhang raus. Bei 99 Datensätzen wird die Ausführungszeit ab 900 Ausführungen wieder schneller. Leider habe ich nicht genug Erfahrung mit C++ um mir zu erklären woher das Problem kommt.

    Habt ihr vielleicht eine Idee?

    Nebenbei bemerkt ist die Ausführungszeit für die 513 Datensätze nur geringfügig langsamer, 0,0034 Sekunden pro Ausführung zu 0,0029 Sekunden pro Ausführung...

    Ich hoffe ihr könnt mir helfen.



  • Ein Profiler ist nicht zum Messen der Ausführungszeit gedacht/geeignet. Man benutzt ihn, um "langsame Stellen" im Programm zu finden. Das Programm läuft mit dem Profiler langsamer!



  • Aber grundsätzlich müsste es doch gleichmäßig langsamer laufen, oder? Ich brauche keine exakte Ausführungszeit sondern stelle diese in den Vergleich zu einem zweiten, anders laufenden FDCT den ich ebenfalls mit diesem Profiler messe.

    Für mich war der Profiler die beste Methode die Ausführungszeit zu messen, alles andere was ich gefunden habe war nicht genau genug bzw hatte auch nicht die Möglichkeit mehrere Durchläufe zu kombinieren.



  • wenn du nur die ausführungszeit messen willst, dann http://msdn.microsoft.com/en-us/library/ms644904(VS.85).aspx



  • Ich befürchte das wird nix für mich, da ich auf ner Linux Maschine arbeite...


  • Mod

    FunGun schrieb:

    Ich befürchte das wird nix für mich, da ich auf ner Linux Maschine arbeite...

    Noch einfacher. Guck dir mal an, was time macht.


Anmelden zum Antworten