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
Gut daß es NUR die eine Software gibt. :-) WENNNN es die eigene SW ist, kann man Prüfpunkte einbauen und Logs lesen.
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.
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
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.
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
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é
Visual Studio hat einen sehr nützlichen Profiler, den ich (seit dem ich ihn entdeckt habe) oft und gerne nutze.
Hallo, danke für die genannten Informationen und Werkzeuge. Werde mir die Tools mal genauer ansehen :) Grüße Lukas
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.
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
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.
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é
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 :-)
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.
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é
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.
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.
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.
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...
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...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.