profiling

___ answer217906 ___

Sie können Valgrind wahrscheinlich versuchen ( Ссылка ). Sie verfügen über Laufzeit- und Kompilierzeit-Profilerstellungs-Tools.

    
___ qstnhdr ___ Gibt es ein ähnliches Tool für Linux, das wie Shark unter Mac OS X funktioniert? ___ answer336149 ___

OProfile ist ein Tool, das auf Stichproben basierende Profilerstellung für Ihre Anwendung und das System durchführt ruft es macht. Dies ermöglicht es, detaillierte Informationen darüber zu sehen, wo es Zeit benötigt. Es hat keine GUI, aber es gibt mehrere Front-Ends, mit denen Sie die Informationen aus den Läufen verarbeiten können.

Ich habe es ausgiebig genutzt, sowohl für Desktop-Anwendungen als auch für Embedded-Systeme. Es braucht ein wenig Aufwand, um die Ergebnisse zu interpretieren, aber die Callgraph-Ausgabe ist hier wirklich nützlich.

    
___ answer334829 ___

Erweitere eine andere Antwort, ich benutze die "callgrind" -Option von valgrind ( Ссылка ). Dann installiere kcachegrind von KDE für eine nette GUI-Schnittstelle.

Als Tutorial für Dummies:

1) Kompilieren Sie Ihre Anwendung mit Debugging-Informationen. Es ist eine gute Idee, das Profiling mit Optimierung sowohl ein- als auch auszuschalten, mit optimierter Optimierung erhalten Sie mehr Informationen, aber es ist möglicherweise weniger genau (insbesondere winzige Funktionen werden mehr Zeit in Anspruch nehmen, als sie verdienen.

2) Führen Sie mit:

%Vor%

Dies sollte eine Datei namens "callgrind.something" erzeugen, die Sie in kcachegrind laden können.

Sie können auch sehen:

valgrind --tool = cachegrind

Hier erhalten Sie Informationen darüber, wie Ihre App mit dem Cache Ihrer CPU interagiert.

Beachten Sie, dass Valgrind und Hai zwar ähnlich aussehen, aber sehr unterschiedlich funktionieren. Wenn Sie eine App in Valgrind ausführen, läuft sie viel langsamer als normal (oft über 40 mal langsamer), aber die Ergebnisse, die Sie erhalten, sind viel genauer als die von Hai. Ich neige dazu, beide zu verwenden, damit ich so viele Informationen wie möglich erhalten kann!

    
___ qstntxt ___

Shark auf Mac OS X ist ein großartiges Tool zum Profiling einer Anwendung auf einem laufenden System. Gibt es ähnliche Tools für Linux?

OProfile sieht so aus, als könnte es sein, jemand hat es benutzt?

    
___ answer4375693 ___

Etwas spät, um diese Frage zu beantworten, aber die nächste Antwort ist Zoom . Ein Teil des Shark-Teams hat daran gearbeitet.

    
___ tag123Profiling ___ Profiling ist der Prozess zum Messen einer Anwendung oder eines Systems, indem ein Analysetool namens Profiler ausgeführt wird. Profiling-Tools können sich auf viele Aspekte konzentrieren: Aufrufzeiten und Anzahl der Funktionen, Speicherauslastung, CPU-Auslastung und Ressourcenverbrauch. ___ tag123linux ___ LINUX FRAGEN MÜSSEN PROGRAMMIEREN VERWANDT SEIN. Verwenden Sie dieses Tag nur, wenn sich Ihre Frage auf das Programmieren mit Linux-APIs oder das Linux-spezifische Verhalten bezieht, nicht nur, weil Sie Ihren Code unter Linux ausführen. Wenn Sie Linux-Unterstützung benötigen, können Sie https://unix.stackexchange.com oder https://askubuntu.com ausprobieren ___ tag123oprofile ___ OProfile ist ein Profiling-System für Systeme mit Linux 2.2, 2.4 und 2.6. Profiling läuft transparent im Hintergrund und Profildaten können jederzeit gesammelt werden. OProfile verwendet die auf Intel-, AMD- und anderen Prozessoren bereitgestellten Hardware-Leistungsindikatoren und verwendet einen zeitgeberunterbrechungsbasierten Mechanismus für CPUs ohne Leistungsindikatoren. OProfile kann das gesamte System detailliert darstellen. ___ tag123profiler ___ Ein Profiler ist ein Programmiertool, um die Leistung eines Softwareprogramms zu verfolgen und zu analysieren. ___
5
Antworten

BufferedReader.read () verbraucht 100% der CPU

Ich habe einen JAVA-Spieleserver, der 1 Thread pro TCP-Verbindung verwendet. (Ich weiß, es ist schlecht, aber ich muss es jetzt so halten). Auf einem (3.2Ghz 6cor x2 Maschine, 24GB RAM, Windows Server 2003 64bit) und hier ist ein Stück des Codes...
02.09.2011, 09:12
1
Antwort

Profiliere nur eine einzelne Funktion (oder Kostenstelle) mit GHC

Ich versuche, einen Haskell-Code mithilfe der GHC-Profiling-Tools zu erstellen. Die Kostenstelle, für die ich mich am meisten interessiere, wird derzeit jedoch von einer Reihe von Initialisierungscodes dominiert, die mich nicht wirklich interess...
16.05.2016, 20:47
1
Antwort

Ist Kontextwechsel mit erheblicher Zeit verbunden?

Ich hatte Probleme mit einer App (die sowohl Java als auch C ++ und OpenCV verwendet), die in Bezug auf die Zeit, die zum Ausführen verschiedener Aufgaben benötigt wird, sehr inkonsistent zu sein scheint. Um dies zu diagnostizieren, habe ich ein...
11.07.2014, 17:31
2
Antworten

EF6 SQLQuery ist sehr langsam, aber die Datenbank ist sehr schnell

Ich habe ein Performance-Problem, wir haben eine Reihe von Analysen durchgeführt und stecken fest. Hoffentlich hat einer von euch das schon einmal gesehen. Ich rufe DbContext.Database.SqlQuery an, der Datenbankbereich dauert 3 ms, aber die...
06.08.2015, 20:01
1
Antwort

Wie gehe ich mit dem Hotspot org.apache.tomcat.util.threads.TaskQueue.take () um?

Ich profile meine Anwendung auf tomcat mit visualvm . Ich rufe eine der REST-Web-Service-Methode auf, die 5000 Datensätze in HBase erstellt und die erfolgreiche und fehlgeschlagene Zählung an den Client zurückgibt. Nachdem ich den visualvm...
10.09.2014, 11:14
1
Antwort

Quelltext von Python kommentieren, wenn qcachegrind zum Verarbeiten der profilestats-Ausgabe verwendet wird

Kcachegrind dient als wunderbares Werkzeug, um den Hotspot beim Profiling von Code visuell auf die Quellzeilenebene darzustellen. Ich fand es sehr nützlich, wenn ich meine C ++ - Code-Basis optimieren möchte. Für mein neuestes Python-Projekt h...
29.06.2015, 06:49
1
Antwort

Warum ruft mein Code anscheinend LocalDataStoreMgr.GetNamedDataSlot auf?

Wenn unsere ASP.NET-Website stark ausgelastet ist, wird einer der Server hin und wieder einfach verrückt und verwendet 100% CPU, ohne überhaupt zu antworten. Wenn ich stackdump.exe auf den laufenden Prozess laufe, sehe ich, dass praktisch a...
16.01.2014, 10:15
3
Antworten

Erlang: Wie profile ich, ob qlc: q vollständige Tabellensuche, Schlüsselpräfix-Suche oder Schlüsselsuche durchführt?

Wie profiliere ich, ob qlc: q vollständige Tabellensuche, Schlüsselpräfixüberprüfung oder Schlüsselsuche durchführt? Zum Beispiel werden ets vom Typ, die mit Einträgen wie {{KeyPrefix, KeySuffix}, Value} gesetzt sind, %Vor% Vollständige T...
12.04.2011, 13:51
3
Antworten

Sammeln von JavaScript-Speicherprofildaten von Benutzern

Ich schreibe eine clientlastige Site. Da meine eigenen Tests mich nur so weit bringen werden, möchte ich einige Statistiken darüber sammeln, wie es in der Wildnis funktioniert. Ich stelle mir vor, meiner App irgendeine Art von Profiling-Code...
02.05.2013, 13:53
1
Antwort

Debugging - Wie reagiert das System auf die native Speichernutzung?

Allgemeine Frage. Ich entwickle eine App mit React Native, und bestimmte Aktionen bringen meine App auf etwa 500 MB RAM, wo sie normalerweise getötet wird. Ich habe im Internet nach gutem Material zum RN-Speicherprofilen gesucht, aber nichts...
15.12.2016, 12:54