Forum: Compiler & IDEs Gprof Output nicht deterministisch


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Patrick L. (crashdemon)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

ich spiele gerade eine bisschen mit dem GNU Profiler Gprof herum und 
dabei ist mir augefallen das der Output Report nicht deterministisch 
ist. Woher kommt das?

Ich beschreib mal hier wie ich vorgehe:

1. C-Programm geschrieben und mit GCC mit der option für Profiling 
gebaut
2. C-Programm ausgeführt und von Hand abgebrochen (Windows)
3. gmon.out wird erzeugt und mittels Gprof ein Flat-Profile, etc... 
erzeugt.
4. Report weg gespeichert
5. Programm nochmal laufen lassen. Von Hand abgebrochen. Report erzeugt.
6. Report mit dem vorherigen verglichen.

Gerade bei den prozentualen werten gibt es teilweise deutliche 
Abweichung zwischen den läufen?! Wei kann man dass erklären? Kriegt man 
das in den Griff?

Ich wollte den Profiler eigentlich dazu benutzen um Funktionen zu 
erkennen die besonders viel Laufzeit in Anspruch nehmen um diese gezielt 
zu optimieren.

von Thomas W. (goaty)


Bewertung
1 lesenswert
nicht lesenswert
- Unterschiedliche Bedingungen des Programms beim ersten und zweiten 
Lauf
- Unterschiedliche Laufzeit (per Hand abgebrochen)
- Sampling based ! Die Meßwerte sind nie exakt gleich.

von Patrick L. (crashdemon)


Bewertung
0 lesenswert
nicht lesenswert
Ich hatte das Programm auch schonmal so angepasst, dass es nur ca. 100 
mal läuft und sich dann auch von selbst terminiert. Aber auch dann kommt 
es zu unterschiedlichen Ergebnissen. Woran kann das liegen?

von Thomas W. (goaty)


Bewertung
0 lesenswert
nicht lesenswert

von Blechbieger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Cache-Effekte könnten noch eine Rolle spielen, z. B. wenn parallel 
laufende Programme deins dauernd aus dem Cache verdrängen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.