Mat
08-12-2008, 11:47
Hallo liebes Forum,
ich habe eine Anwendung geschrieben die größer ist. (> 10k Code).
Es handelt sich um numerische Algorithmen.
Nun will ich ein sauberes Performance-Testing machen.
Es geht um Folgendes: Je nach Problemgröße (input) will ich mir genau anschauen können wie aufwändig gewisse Teile des Codes (des Algorithmuses) sind und dann dort gezielt optimieren.
Mir fällt spontan nur folgendes ein:
* Profiling: Über Profiler (z.B. kcachegrind o.ä.) mir den prozentualen Anteil an der Obermethode anzeigen lassen.
* Zeitmessungen in Sekunden.
Mein Problem/Frage:
Ich brauche ein verlässliches Werkzeug das mir genau zeigt wie teuer eine Methode (ein Teil) ist. Nur weiß ich nicht welches Werkzeug möglichst genau ist und nicht von irgendwelchen Prozessen beeinflusst wird? Wie geht ihr vor? Gibt es spezielle Tools (unter Linux) mit welchen sich genau die Zeit (Prozent oder sonstwie) messen lassen kann? Worauf muss ich achten? (Möglichst wenig Prozesse beim laufen?). Habt ihr spezielle Tricks?
Ich danke euch für eine geduldige Antwort
:)
ich habe eine Anwendung geschrieben die größer ist. (> 10k Code).
Es handelt sich um numerische Algorithmen.
Nun will ich ein sauberes Performance-Testing machen.
Es geht um Folgendes: Je nach Problemgröße (input) will ich mir genau anschauen können wie aufwändig gewisse Teile des Codes (des Algorithmuses) sind und dann dort gezielt optimieren.
Mir fällt spontan nur folgendes ein:
* Profiling: Über Profiler (z.B. kcachegrind o.ä.) mir den prozentualen Anteil an der Obermethode anzeigen lassen.
* Zeitmessungen in Sekunden.
Mein Problem/Frage:
Ich brauche ein verlässliches Werkzeug das mir genau zeigt wie teuer eine Methode (ein Teil) ist. Nur weiß ich nicht welches Werkzeug möglichst genau ist und nicht von irgendwelchen Prozessen beeinflusst wird? Wie geht ihr vor? Gibt es spezielle Tools (unter Linux) mit welchen sich genau die Zeit (Prozent oder sonstwie) messen lassen kann? Worauf muss ich achten? (Möglichst wenig Prozesse beim laufen?). Habt ihr spezielle Tricks?
Ich danke euch für eine geduldige Antwort
:)