Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Performance Optimieren -> Werkzeuge od. Tricks?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.12.2008, 12:45 Uhr
~Bleistift
Gast


Hallo liebes C++ 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
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.12.2008, 13:03 Uhr
0xdeadbeef
Gott
(Operator)


Spontan ist dir da schon das richtige eingefallen - du willst einen Profiler. Unter Linux bedeutet das in aller Regel gprof, valgrind, oder ein Frontend dafür; kcachegrind ist meines Wissens ein Frontend für ein entsprechendes valgrind-Plugin, kprof (ich bleib grad mal unter KDE) für gprof-Ausgaben.

gprof ist hier kurz erklärt. valgrind benutze ich nur zum Entdecken von Speicherlöchern, deswegen kann ich dir damit nicht weiterhelfen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.12.2008, 13:10 Uhr
~Bleistift
Gast


Danke erstmal.

Aber sind die Profiler auch wirklich genau? Wie sind denn so die Einflüsse der Hardware bzw. anderer Prozesse die gerade laufen? Baut der Profiler irgendwie eine Umgebung auf die "nicht gestört" wird? Und welchen Profiler nehmt ihr denn so her?

Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
08.12.2008, 15:14 Uhr
0xdeadbeef
Gott
(Operator)


Ich denke, es bringt wenig, wenn ich dir darüber einen Aufsatz schreibe - wie das ganze im Einzelnen funktioniert, ist zum Beispiel am Anfang des gprof-Handbuchs beschrieben:

http://sourceware.org/binutils/docs/gprof/index.html
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: