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. ___
2
Antworten

JS: Profil, was Objekte Konstruktoren sind Müll gesammelt

Gibt es eine Möglichkeit zu wissen, welche Arten von Objekten am häufigsten in einer Javascript-Anwendung gesammelt werden? Ich weiß, dass ich einen Heap-Snapshot bekommen kann, aber das sagt nur, welche Objekte am häufigsten sind, nicht die...
14.10.2015, 14:09
1
Antwort

So finden Sie Täter-Klasse / Objekt durch Blick auf Speicher-Profiler Ergebnis in VisualVM

Ich profiliere meine Java-Anwendung mit VisualVM und ich habe durchgemacht profiling_with_visualvm_part_1 profiling_with_visualvm_part_2 Wenn ich das Ergebnis des Speicherprofils sehe, sehe ich Millionen von Objects[] , Char[]...
09.09.2013, 17:52
1
Antwort

Warum brauchen Klammern beim C # -Code Zeit?

Ich benutze Ants Performance Profiler 8.5 und als ich die Zeit sah, die jede Zeile meines Codes läuft, habe ich bemerkt, dass die Klammern auch Zeit brauchen. Hier ist ein Bild, auf dem links neben den geschweiften Klammern die Zeit in Millis...
02.06.2014, 06:51
1
Antwort

Wie Speicherverbrauch von C ++ - Programm mit Copy-on-Write zu minimieren?

Ich arbeite an einer Anwendung, die sich bis zu achtmal für Parallelität ausgibt. Jede Verzweigung hat eine vollständige Kopie des Speicherplatzes des ursprünglichen Prozesses zum Zeitpunkt der Verzweigung. Die Forks sind schnell, da Linux die S...
28.11.2012, 15:07
3
Antworten

Welche Bedeutung hat Overhead-Zeit für Thread-Parallelität in der Profiler-Ausgabe?

Ich würde mich sehr freuen, wenn jemand mit einer guten Erfahrung mit Intel VTune Amplifier mir von diesem Ding erzählen würde. Kürzlich erhielt ich einen Bericht über die Leistungsanalyse von anderen Leuten, die Intel VTune Amplifier gegen...
09.02.2011, 08:05
2
Antworten

Profiling-Programm nach Art der Aktivität

Die Ausgabe eines typischen Profilers ist eine Liste von Funktionen in Ihrem Code, sortiert nach der Zeit, die jede Funktion benötigt hat, während das Programm lief. Das ist sehr gut, aber manchmal interessiert mich mehr, was das Programm am...
08.02.2011, 19:53
2
Antworten

iPhone: Simulator kann nicht erstellt werden, um .gcda Profiling-Datendateien zu generieren

Ich versuche, meinen Code mit dem iPhone-Simulator zu profilieren. Ich habe Testüberdeckungsdatei generieren und Instrumentenprogrammablauf aktiviert und den Linker-Flags -lgcov hinzugefügt. Nach allem, was ich gelesen habe, sollte das all...
13.01.2011, 13:40
1
Antwort

Wie profiliere ich meine rspec-Tests, um die größten Gedächtnisschweine zu finden?

Wir verwenden circleci als Teil unseres Bereitstellungsprozesses. Circleci führt unsere 3000 Tests aus und schlägt manchmal fehl, weil es eine Speichergrenze von 4 GB erreicht. Es sieht so aus, als ob einige unserer Tests eine Menge Objekte erst...
14.01.2015, 22:22
1
Antwort

Erlang Verarbeitet Reduktionszählung

Ich versuche, mehr über die Arbeitsverteilung zwischen den Prozesse meiner Erlang-Anwendung. Die Anzahl der von a Prozess ist unter anderem eines der Dinge, die mich interessieren. Ich suche also nach einer Möglichkeit, die Anzahl der Kürzung...
05.04.2012, 12:26
2
Antworten

Programmatisch den vom Objekt verwendeten Speicher finden

Gibt es eine Möglichkeit, die Speichermenge, die von einem Objekt in c # verwendet wird, programmatisch und genau zu bestimmen? Mir geht es nicht darum, wie langsam der Prozess ist, also ist das Laufen von GCs links und rechts akzeptabel (natürl...
24.09.2012, 04:40