Performance Tools

(Firma: Torrox.de) #4680121
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.
OP #4680135
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
Gast #4680143
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.
Angehängte Dateien:
Gast #4680173
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.
Gast #4680183
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
#4680209
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.
Gast #4680210
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é
(Firma: Torrox.de) #4680216
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.
Gast #4680219
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.
#4680223
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.
Gast #4680224
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.
#4684379
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...
Gast #4689122
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren