gprof unter Windows

gprof unter Windows

Beitragvon monta » 2. Sep 2008, 14:25 gprof unter Windows

Kategorie: Werkzeuge
Typ: Tutorial

Artikel Name: gprof unter Windows
Autor: monta
Beschreibung: Tool zur Laufzeitanalyse und Profiling


wikipedia hat geschrieben:Als Profiler werden Programmierwerkzeuge bezeichnet, die das Laufzeitverhalten von Software analysieren. Es gibt unterschiedliche Problembereiche in der Softwareentwicklung, die durch ineffiziente Programmierung ausgelöst werden. Ein Profiler hilft dem Entwickler durch Analyse und Vergleich von laufenden Programmen die Problembereiche aufzudecken. Daraus kann man Maßnahmen zur strukturellen und algorithmischen Verbesserung des Quellcodes ableiten.


Gprof liefert detaillierte Angeben über Aufrufe und Laufzeiten von den im Programm aufgerufenen Funktionen. Somit erlaubt es rückschlüsse darauf, welche Teilbereiche der Anwednung ggf. optimiert werden sollten.

Folgende Schritte sind dazu nötig:
  • Einkompilieren der benötigten Informationen und Bibliotheken in die ausführbare Datei
  • normales Starten der Anwendung
  • beim Beenden der Anwendung werden die Profiling-Informationen in die gmon.out geschrieben
  • durch aufruf von gprof wird aus der gmon.out der entgültige Bericht geschrieben

Benötigte Bibliotheken und Einstellungen

Die in folgendem Archiv enthaltenen Bibliotheken entstammen dem cygwin-Projekt und sind nötig, um eine ausführbare Datei mit gprof-Unterstützung zu erstellen.
downloads.php?view=detail&id=24

(Benötigt werden: libcygwin, libgcc, libgmon, libkernel32, libuser32)
Damit der FPC die Bibliotheken findet müssen sie entweder direkt in den Sourcepfad gelegt werden oder (besser) gibt man den Quellpfad der Bibliotheken entsprechend an:

Bild

[Alternativ, wenn man gprof öfter verwenden will, und nicht jedesmal den Pfad eintragen möchte, kann man auch eine entsprechende Zeile in die fpc.conf eintragen, welche auf den Speicherort der Bibliotheken verweist:
-Fl bei mir: -FlE:\FPC\gproflibs ]

Nachdem sicher gestellt ist, das der FPC die Bibliotheken auch findet muss nur noch die gprof-Unterstützung aktiviert werden:

Bild

Ausführen

Danach kann die Anwendung wie gewohnt gestartet werden. Erst beim (regulären) beenden der Anwendung wird die Datei gmon.out im Arbeitsverzeichnis der Anwendung erstellt, welche die Rohdaten der Analyse enthält.

Profilerstellung

Nach dem beenden kann aus der gmon.out und der ausführbaren Datei mittels der gprof.exe dann der eigentliche Bericht erstellt werden.
Der Aufruf dazu in der Eingabeaufforderung lautet wie folgt:
Code: Alles auswählen
gprof <Executable> gmon.out > profil.log


Anschließend befindet sich in der profil.log dann der für Menschen lesbare Bericht von gprof.
monta
 
Beiträge: 2932
Registriert: 9. Sep 2006, 17:05
Wohnort: Dresden
OS, Lazarus, FPC: Winux (L trunk FPC trunk) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Euklid » 6. Apr 2009, 14:52 Re: gprof unter Windows

GProf ist wirklich nützlich! Daher möchte ich noch einen Hinweis für Linux-Benutzer hinzufügen:

Unter Linux reicht es in der Regel, gprof über den Paket-Manager zu installieren und die Einstellung in der letzten oberen Abbildung zu übernehmen.
Danach das Programm ausführen. Die Profilerstellung erfolgt wie oben.

Viele Grüße, Euklid
Euklid
 
Beiträge: 2755
Registriert: 22. Sep 2006, 09:38
Wohnort: Hessen

Beitragvon MAC » 4. Mai 2012, 09:23 Re: gprof unter Windows

Ich finde die Idee von gprof Richtig gut, deswegen hab ich mal gleich die Anleitung befolgt um es zu testen.
Rs scheint auch richtig zu sein, da es 10 von 11 benötigten Libs nach dem kopieren des Ordners erkennt. Trotzdem verlangt gprof bei mir noch eine einziege "c-libary"
Code: Alles auswählen
Gaus_rechner.lpr(25,1) Error: Import library not found for c

Vlt liegt es daran das das hochgeladene Packet nicht mehr aktuell ist ?
MAC
 
Beiträge: 770
Registriert: 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2) | 
CPU-Target: 32Bit
Nach oben

Beitragvon martin_frb » 4. Mai 2012, 14:35 Re: gprof unter Windows

gprof ist "nett". Aber wenn wenn Linux hat:

valgrind + kcachegrind

Und wenn man Linux nicht hat, Virtualbox und Linux gibt es beides umsonst.

kcachegrind zeigt so viel mehr Info an. http://kcachegrind.sourceforge.net/html/Home.html
martin_frb
 
Beiträge: 390
Registriert: 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other | 
CPU-Target: mostly 32 bit
Nach oben

Beitragvon Komoluna » 17. Apr 2015, 23:18 Re: gprof unter Windows

Hey, der Link im Artikel ist down(404).
Hat wer irgendwo ne aktuelle Version. Wäre echt hilfreich.

MFG

Komoluna
Komoluna
 
Beiträge: 565
Registriert: 26. Aug 2012, 08:03
OS, Lazarus, FPC: Windows(7, 10), Linux(Ubuntu, Kali) | 
CPU-Target: 64Bit
Nach oben

Beitragvon MAC » 18. Jun 2015, 10:19 Re: gprof unter Windows

Ich hab mir gprof noch einmal angeschaut,
Die Dateien sind mitlerweile offline, ich konnte sie aber (teilweise) wiederfinden.

Für Windows gilt:
Man aktiviert bei den Projekteinstellungen das compilieren für gprof (-pg)

Man installiert MinGW(volle installation) und geht in das Verzeichnis C:\Program Files (x86)\MinGW\lib und sucht die folgenden Dateien
  • libc.a
  • libgcc.a
  • libgmon.a
  • libkernel32.a
  • libuser32.a

Darauf hin installiert man Cygwin(mit debug und devel programmen) und geht in das Verzeichnis C:\Program Files (x86)\Cygwin\lib
  • libcygwin.a

Nachdem man diese Dateien in den Projektordner kopiert gibt es keine Fehler mehr über fehlende Dateien.
Leider funktioniert das ganze immer noch nicht, da Lazarus die Fehlermeldung:
Code: Alles auswählen
project1.lpr(21,1) Error: Failed reading coff file, invalid section index while reading libcygwin.a(_cygwin_crt0_common.o)

ausspuckt.

Kann da jemand weiterhelfen?

Zum schnellen testen (für die die MinGW und Cygwin nicht installieren wollen) hier ein zip
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
MAC
 
Beiträge: 770
Registriert: 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2) | 
CPU-Target: 32Bit
Nach oben

• Themenende •

Zurück zu Werkzeuge



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried