[JAVA] Ich habe versucht, den Profiler von IntelliJ IDEA zu verwenden

Dies ist T.O. von GMO Ad Marketing.

Ich habe versucht, den Profiler mit IntelliJ IDEA Ultimate zu verwenden, daher werde ich das Verwendungsverfahren einführen. Einfach zu bedienen: grinsend:

● Prämisse Die Mac-Version von IntelliJ IDEA Ultimate 2019.3 wird als Entwicklungsumgebung verwendet. Hinweis 1) IntelliJ Profiler kann nur in der Ultimate-Version verwendet werden. Hinweis 2) Derzeit kann die Profiler-Funktion nicht für Anwendungsserver wie Tomcat verwendet werden.

1. Aktivieren Sie die Profiler-Funktion

Wählen Sie im IntelliJ-Menü "Einstellungen-> Erstellen, Ausführen, Bereitstellen-> Profiler-> Java-Profiler". Drücken Sie die Taste "+", um "CPU Profiler" und "Allocation Profiler" hinzuzufügen. profiler_p1.png

Eine Schaltfläche wird hinzugefügt, um den Profiler auszuführen. profiler_p2.png

2. Verwenden Sie den Profiler

2.1. CPU Profiler

Wählen Sie "Run'xxxxx 'with CPU Profiler" aus den Schaltflächen, um den Profiler auszuführen. Wählen Sie nach dem Ausführen des Programms die Registerkarte Profiler auf dem Bildschirm, um das Fenster Profiler-Tools anzuzeigen. Die gesammelten Daten werden auf drei Registerkarten angezeigt: Rahmendiagramm, Aufrufbaum und Methodenliste.

2.1.1. Rahmendiagramm

Zeigt die Frames des aufgerufenen Stacks mit einer Breite an, die proportional zum Prozentsatz der verbrachten CPU-Zeit ist. Es scheint, dass der orangefarbene Teil durch Aufrufen des im Programm geschriebenen Teils verbraucht wird und der blaue Teil durch die Kompilierungszeit usw. verbraucht wird. profiler_cpu_p1.png Wenn Sie untersuchen möchten, wo der Prozentsatz der aufgewendeten Zeit hoch ist, können Sie zur Programmquelle wechseln, die dem Teil des Frames entspricht, indem Sie das Menü mit dem ausgewählten Frame anzeigen und "Zur Quelle springen" auswählen. profiler_cpu_p1-2.png

2.1.2. Baum aufrufen

Informationen zum Aufrufstapel des Programms (Methodenname, Prozentsatz der insgesamt verbrachten CPU-Zeit usw.) werden angezeigt. Der Pfeil ganz links ist eine hierarchische Anzeige, die Sie durch Auswahl genauer überprüfen können. profiler_cpu_p2.png

2.1.3. Methodenliste

Die ausgeführten Methoden werden in absteigender Reihenfolge des kumulierten CPU-Zeitverbrauchs angezeigt. Sie können die aufrufende Methode überprüfen, indem Sie unten für jede ausgewählte Methode "Rückverfolgungen" auswählen. profiler_cpu_p3.png

2.2 Zuordnungsprofiler

Wählen Sie "Run'xxxxx 'mit Allocation Profiler" aus den Schaltflächen, um den Profiler auszuführen. Wählen Sie nach dem Ausführen des Programms die Registerkarte Profiler auf dem Bildschirm, um das Fenster Profiler-Tools anzuzeigen. Die gesammelten Daten werden auf drei Registerkarten angezeigt: Rahmendiagramm, Aufrufbaum und Methodenliste.

2.2.1. Rahmendiagramm

Die Frames des aufgerufenen Stapels werden mit einer Breite angezeigt, die proportional zum Prozentsatz des Speicherverbrauchs ist. Wenn Sie einen Ort untersuchen möchten, der viel Speicher benötigt, können Sie zur Programmquelle wechseln, die dem Teil des Frames entspricht, indem Sie das Menü mit dem ausgewählten Frame anzeigen und im Menü "Zur Quelle springen" auswählen. profiler_allocation_p1.png

2.2.2. Baum aufrufen

Informationen zum Aufrufstapel des Programms (Methodenname, Prozentsatz des gesamten Speicherverbrauchs usw.) werden angezeigt. profiler_allocation_p2.png Der Pfeil ganz links ist eine hierarchische Anzeige, die Sie durch Auswahl genauer überprüfen können. profiler_allocation_p3.png

2.2.3. Methodenliste

Die ausgeführten Methoden werden in absteigender Reihenfolge der kumulierten Speichermenge angezeigt. Sie können die aufrufende Methode überprüfen, indem Sie unten für jede ausgewählte Methode "Rückverfolgungen" auswählen. profiler_allocation_p4.png

Referenz

In schriftlicher Form habe ich auf Folgendes hingewiesen. [Profiled Tools - Offizielle Hilfe | IntelliJ IDEA] (https://pleiades.io/help/idea/cpu-profiler.html)

Morgen ist "Wie man mit fehlenden Werten durch maschinelles Lernen umgeht" von @CodeDiggerM. Bitte genießen Sie weiterhin GMO Ad Marketing Adventskalender 2019!

Recommended Posts

Ich habe versucht, den Profiler von IntelliJ IDEA zu verwenden
Ich habe den neuen Feature-Profiler von IntelliJ IDEA 2019.2 ausprobiert.
Ich habe versucht, die Server-Push-Funktion von Servlet 4.0 zu verwenden
Ich habe versucht, Google HttpClient von Java zu verwenden
Das Erfolgsgeheimnis von IntelliJ IDEA
Ich habe versucht, die Cache-Funktion des Application Container Cloud Service zu verwenden
Ich habe versucht, Gson zu benutzen
Ich habe versucht, TestNG zu verwenden
Ich habe versucht, Galasa zu benutzen
[API] Ich habe versucht, die Postleitzahlensuch-API zu verwenden
Die Idee der schnellen Sortierung
Die Idee von jQuery
05. Ich habe versucht, die Quelle von Spring Boot zu löschen
Ich habe versucht, die Kapazität von Spring Boot zu reduzieren
Ich habe versucht, das Migration Toolkit für Anwendungsbinärdateien zu verwenden
Ich habe versucht, das Docker Integration-Plug-In in IntelliJ zu installieren
Ich habe versucht, Azure Cloud-Init zu verwenden
Ich habe versucht, Apache Wicket zu verwenden
Versuchen Sie es mit IntelliJ IDEA, da Sie dies nur einmal tun müssen
Ich habe versucht, Java REPL zu verwenden
Ich habe das FizzBuzz-Problem ausprobiert
Beachten Sie, dass ich von den Einstellungen des Android-Projekts von IntelliJ IDEA abhängig war
Ich habe versucht, das GitHub-Repository als Bibliotheksserver zu verwenden
[Rails] Ich habe zum ersten Mal versucht, die button_to-Methode zu verwenden
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
Ich habe JAX-RS ausprobiert und mir das Verfahren notiert
Ich habe die grundlegende Grammatik von Ruby kurz zusammengefasst
Ich habe versucht, die Umgebung nach und nach mit Docker aufzubauen
Ich habe versucht, eine Umgebung mit WSL2 + Docker + VSCode zu erstellen
Ich habe versucht, die CameraX-Bibliothek mit Android Java Fragment zu verwenden
Ich habe versucht, die Beispielanwendung gemäß der Idee des Buches "Micro Service Architecture" in einen Mikrodienst zu verwandeln.
Ich habe versucht, die Asset-Management-Anwendung mit dem Emulator des verteilten Hauptbuchs Scalar DLT zu berühren
Ich habe jetzt versucht, Anakia + Jing zu verwenden
Ich habe versucht, JOOQ mit Gradle zu verwenden
Ich habe die Quelle von ArrayList gelesen, die ich gelesen habe
Ich habe die Quelle von Integer gelesen
Ich habe die Quelle von Long gelesen
Ich habe das Java-Framework "Quarkus" ausprobiert.
[Rails] Ich habe versucht, die Anwendung zu löschen
Ich habe versucht, die Java8 Stream API zu verwenden
Ich habe die Quelle von Byte gelesen
Ich habe versucht, WebAssembly Stadio (Version 2018/4/17) zu verwenden.
Ich habe die Quelle von String gelesen
Ich habe versucht, Java Memo LocalDate zu verwenden
Ich habe versucht, das Problem der "mehrstufigen Auswahl" mit Ruby zu lösen
[Metall] Ich habe versucht, den Fluss bis zum Rendern mit Metall herauszufinden
Ich habe versucht, mit Docker eine Plant UML Server-Umgebung zu erstellen
Ich habe den Eingabe- / Ausgabetyp von Java Lambda ~ Map Edition ~ ausprobiert
Ich habe versucht, den Betrieb des gRPC-Servers mit grpcurl zu überprüfen
Ich habe versucht, die Methoden von Java String und StringBuilder zusammenzufassen
Ich habe versucht, den Kalender mit Java auf der Eclipse-Konsole anzuzeigen.
Ich habe versucht, das Problem des Google Tech Dev Guide zu lösen
Ich habe versucht, die Elasticsearch-API in Java zu verwenden
Versuchen Sie, || anstelle des ternären Operators zu verwenden
Ich habe versucht, die verwendeten Methoden zusammenzufassen
Ich habe versucht, Realm mit Swift UI zu verwenden