mikrocontroller.net

Forum: PC-Programmierung Performance Tools


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 Lukas D. (lukas_d)


Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen,

ich suche Werkzeuge mit denen man die Performance einer Software 
überprüfen und verbessern kann. Im Genauen geht es um die Verbesserung 
von Startup's, Aufspürung von Pollings und Sleep's etc. Hat da jemand 
Erfahrungen?

Grüße

Lukas

von oszi40 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gut daß es NUR die eine Software gibt. :-) WENNNN es die eigene SW ist, 
kann man Prüfpunkte einbauen und Logs lesen.

von Torsten R. (Firma: robitzki.de) (torstenrobitzki)


Bewertung
0 lesenswert
nicht lesenswert
Lukas D. schrieb:
> ich suche Werkzeuge mit denen man die Performance einer Software
> überprüfen und verbessern kann. Im Genauen geht es um die Verbesserung
> von Startup's, Aufspürung von Pollings und Sleep's etc. Hat da jemand
> Erfahrungen?

Kommt stark auf die Plattform an. Ich finde google perftools 
(gperftools) ganz prima für CPU profiling. Statistische Profiler 
brauchen natürlich eine gewisse Lauflänge um Daten zu sammeln. Probleme 
im Startup-Code findest Du wahrscheinlich am besten durch Code Reviews 
und messen mit 'nem Oszilloskop. Sleep mit 'ner Suche über den 
Quellcode.

von Lukas D. (lukas_d)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke für eure schnelle Rückmeldung. Zur Ergänzung die Software ist 
mehrere Gigabyte groß daher ist es mir nur sehr schwer möglich Pins zu 
toggeln um mit Oszilloskope zu messen aber ein guter Ansatz. Das heißt 
es müssten Tools sein die schon beim Kompilieren oder beim Debuggen 
Anwendung finden können. Tools die ich bereits gefunden hatte wären:

- Windows Performance Analyser
- API Spy
- Performance Counter
- Intel Parallel Studio

Hat damit jemand schonmal was gemacht?

Grüße

Lukas

von Kaj (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Das was du suchst nennt sich "profiling" und dazu brauchst du einen 
"Profiler".

Wenn's dein eigener Code ist:
Unter Windows hat Visual Studio (ich glaube ab der 2012er Version) einen 
ziemlich guten Profiler mit drin.
Schau mal hier: https://msdn.microsoft.com/en-us/library/z9z62c29.aspx

Unter Unix/Linux hilft dir Valgrind bei der Analyse.
Das funktioniert in der Verbindung mit dem QtCreator ziemilch gut.
http://www.mantidproject.org/Profiling_With_Valgrind


Ein Profiler sagt dir ganz genau welche Funktion wie oft aufgerufen wird 
und wo viel zeit verloren geht.
Siehe Bild:
Oben sieht man den Code, und dann unten alle Funktionen die aufgerufen 
werden, wo die Funktion herkommt, usw.
In der 3. Zeile von unten sieht man den Aufruf von main.

von Mark B. (markbrandis)


Bewertung
0 lesenswert
nicht lesenswert
Lukas D. schrieb:
> danke für eure schnelle Rückmeldung. Zur Ergänzung die Software ist
> mehrere Gigabyte groß

Mehrere Gigabyte an Sourcecode? Eher unwahrscheinlich.

: Bearbeitet durch User
von Rene H. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Mark B. schrieb:
> Mehrere Gigabyte an Sourcecode? Eher unwahrscheinlich.

Weshalb? Ich habe gerade mal geguckt wie gross mein aktuell betreutes 
Projekt ist: 3,386196 GB.

Sowas ist sicher nicht häufig, kommt aber vor ;-)

Grüsse,
René

von Borislav B. (boris_b)


Bewertung
0 lesenswert
nicht lesenswert
Visual Studio hat einen sehr nützlichen Profiler, den ich (seit dem ich 
ihn entdeckt habe) oft und gerne nutze.

von Lukas D. (lukas_d)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke für die genannten Informationen und Werkzeuge. Werde mir die Tools 
mal genauer ansehen :)

Grüße

Lukas

von Kaj (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Rene H. schrieb:
> Weshalb? Ich habe gerade mal geguckt wie gross mein aktuell betreutes
> Projekt ist: 3,386196 GB.
Reden wir dabei wirklich nur über reinen Code oder sind da auch 
binaries, libs, bilder/icons, etc. dabei?
Bei reinem Code fällt es mir schwer zu glauben, das es wirklich 3,3 GB 
sein sollen.

Warum wir das hier nicht so ganz glauben?
Naja, Ich schau mir mal kurz den Linux-Kernel 4.7 als vergleich an...
Ausgepackt sind das 605 MB, 54394 Dateien in 3662 Ordnern inkl. 
Dokumentation etc. Das sind mittlerweile (ich glaube) über 20 Millionen 
Zeilen an Code.

Möchtest du uns jetzt erzählen, dass dein Projekt fast 6x so groß wie 
der Linux-Kernel sein soll? Halte ich, ehrlich gesagt, für 
unwahrscheinlich, wenn auch nicht unmöglich.

von Dennis S. (eltio)


Bewertung
0 lesenswert
nicht lesenswert
gprof wäre auch noch ein Klassiker:
https://sourceware.org/binutils/docs/gprof/

Gruß
Dennis

von Draco (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Rene H. schrieb:
> Weshalb? Ich habe gerade mal geguckt wie gross mein aktuell betreutes
> Projekt ist: 3,386196 GB.
>
> Sowas ist sicher nicht häufig, kommt aber vor ;-)
>
> Grüsse,
> René

Wie heißt denn eure Firma?!

Also Chrome ist aktuell das größte was ich als Source gesehen habe, das 
liegt aber auch daran das in jeder Header 2kb Copyrights liegen, bei 
75.000 Dateien kommt da schon was zusammen und die  License File alleine 
schon 133 Mbyte. Und das sind ca. 1,5 Gbyte ingesamt als Projekt - wobei 
ca. 15% davon reiner Source sind.

Also Butter bei de Fische...: Wird das nen neues Windows?! :-D

von Mark B. (markbrandis)


Bewertung
0 lesenswert
nicht lesenswert
Rene H. schrieb:
> Mark B. schrieb:
>> Mehrere Gigabyte an Sourcecode? Eher unwahrscheinlich.
>
> Weshalb? Ich habe gerade mal geguckt wie gross mein aktuell betreutes
> Projekt ist: 3,386196 GB.
>
> Sowas ist sicher nicht häufig, kommt aber vor ;-)

Aber wenn es vorkommt, dann ist es sicher nicht das Werk eines 
Einzelnen. Da müsste dann schon ein ziemlich großes Team 
dahinterstecken.

von Rene H. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Kaj schrieb:
> Reden wir dabei wirklich nur über reinen Code oder sind da auch
> binaries, libs, bilder/icons, etc. dabei?
> Bei reinem Code fällt es mir schwer zu glauben, das es wirklich 3,3 GB
> sein sollen.

Code, ein paar Icons sind dabei, dass stimmt. Keine Bilder. Keine 
Binaries. Hmm.... Libaries hat es, die nehmen aber praktisch kein Platz 
sein.

Das Projekt ist 15 Jahre alt und entsprechend gewachsen. Ich wollte 
damit nur sagen, sowas kommt schon vor, ist aber sicher die Ausnahme. 
Ich kann ja mal schauen, wie lange das Compilieren auf einer 64 Core 
Maschine dauert. ;-)

Grüsse,
René

von Rene H. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Draco schrieb:
> Wie heißt denn eure Firma?!

Kann ich Dir nicht sagen, sorry.

Draco schrieb:
> Also Butter bei de Fische...: Wird das nen neues Windows?! :-D

:-)

von Torsten R. (Firma: robitzki.de) (torstenrobitzki)


Bewertung
1 lesenswert
nicht lesenswert
Rene H. schrieb:
> Das Projekt ist 15 Jahre alt und entsprechend gewachsen. Ich wollte
> damit nur sagen, sowas kommt schon vor, ist aber sicher die Ausnahme.
> Ich kann ja mal schauen, wie lange das Compilieren auf einer 64 Core
> Maschine dauert. ;-)

lass doch einfach mal die "lines of code" zählen. Das ist meinst ne ganz 
gute Hausnummer für Projektgrößen.

von Rene H. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Mark B. schrieb:
> Einzelnen. Da müsste dann schon ein ziemlich großes Team

Natürlich. Jetzt wird es nur noch betreut bis es "stirbt", 
dementsprechend klein ist das Team.

Grüsse,
René

von Draco (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Freitag... es ist Freitag! Sorry, aber ich glaube davon kein Wort. Wenn 
man nach 15 Jahren anfangen will, in einem Forum zu fragen, was es so 
für Perf Tools gibt. Sorry, für mich ist das eindeutig ein 
Freitags-Troll.

Und dann is die Firma auch noch so geheimnisvoll! Sorry, ich bin raus.

von Mark B. (markbrandis)


Bewertung
0 lesenswert
nicht lesenswert
Da muss man schon richtig lesen: Die 15 Jahre hat nicht der 
Themenersteller genannt.

Aber ja, es ist komisch dass der Themenersteller angeblich an einem 
Riesenprojekt arbeitet, aber dann eher hier im Forum fragt als seine 
Kollegen, die es bei einem Projekt dieser Größe ja offensichtlich geben 
müsste.

von Rene H. (Gast)


Bewertung
2 lesenswert
nicht lesenswert
Draco schrieb:
> Freitag... es ist Freitag! Sorry, aber ich glaube davon kein Wort.
> Wenn
> man nach 15 Jahren anfangen will, in einem Forum zu fragen, was es so
> für Perf Tools gibt. Sorry, für mich ist das eindeutig ein
> Freitags-Troll.
>
> Und dann is die Firma auch noch so geheimnisvoll! Sorry, ich bin raus.

Äh, ich habe nicht gefragt. :-)

Ich habe nur Mark darauf Aufmerksam gemacht, dass sowas vorkommen kann.
Deshalb tut meine Arbeitgeberin nichts zur Sache.

von Draco (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Rene H. schrieb:
> Äh, ich habe nicht gefragt. :-)

Aso ja - seh ich gerade :-D

von Joggel E. (jetztnicht)


Bewertung
-1 lesenswert
nicht lesenswert
3GB an Code. Interessant. Debugging muss natuerlich schon vor der ersten 
Zeile im Konzept gewesen sein. Profiling gehoert auch dazu.
Jede Unit, oder funktionale Einheit muss natuerlich mit einem eigenen 
Testprogramm getestet werden koennen...

Wenn nach 15 Jahren niemand mehr da ist der da den Ueberblick hat, 
gehoert das Teil langsam in die Mottenkiste.

Mach's neu...

von Pit (Gast)


Bewertung
0 lesenswert
nicht lesenswert
oszi40 schrieb:
> Gut daß es NUR die eine Software gibt. :-) WENNNN es die eigene SW ist,
> kann man Prüfpunkte einbauen und Logs lesen.

Das ist eine tolle Idee.

Z.B. gibt es die Standard Library (usind namespace std;).

Da kann man mit <fstream> Dateien schreiben und mit <chrono> sogar 
Nanosekunden messen (obwohl ich glaube, dass die da auf Millisekunden 
aufrunden).

Wenn das jetzt keine Werkzeuge sind...

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.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

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