Wie profiliert man Java Source mit dem Intellij Idea Editor? [geschlossen]


82

Ich weiß, dass Netbeans so etwas wie einen "integrierten" Profiler hat. Sie können beispielsweise Unit-Tests ausführen und damit analysieren und herausfinden, was sie verlangsamt und wo Engpässe bestehen. Ist es möglich, Code im IntelliJ IDEA-Editor zu profilieren?


1
Soweit ich weiß, gibt es nur eine kostenlose Profiler-Integration: VisualVM .
CrazyCoder

Anscheinend gibt es ein nicht kostenloses JProfiler-Plugin, FWIW stackoverflow.com/a/21156875/32453
rogerdpack

Heute habe ich das Plugin VisualVM in INtellij IDEA installiert ... anfangs hatte ich ein Problem, aber als ich die Anweisungen in blog.idrsolutions.com/2013/05/… befolgte, konnte ich visualVM
Shirishkumar Bari

2
Eine andere Frage, die viel zu praktisch und nützlich ist, um offen zu bleiben. SO sollten Fragen mit Antwortgruppen {N} , wo gut genug Resultat (e) aus der Serie unterstützen: [ X, Y, Z] Aufstieg an die Spitze über die Gemeinde und den Rest verschwinden / erfordert zusätzliche Aktion aufgrund einer natürlichen Abnahme. Wieder über die Community. "Willst du das wirklich beantworten? Weil es bereits eine Antwort gibt, die als verdammt gut eingestuft wurde?" "Ja, denn jetzt gibt es eine bessere beste Antwort." Ich meine, das passiert in Software nie richtig?
P.Brian.Mackey

1
Zu Ihrer Information: In IntelliJ IDEA v2018.3 Ultimate Edition ist der JVM Profiler als experimentelle Funktion verfügbar. Siehe blog.jetbrains.com/idea/2018/09/…
chipiik

Antworten:


55

Sie können die kostenlose VisualVM-Profiler-Integration über ein Plug-In ausprobieren .


Wenn Sie IntelliJ "Ultimate" kaufen, soll es auch einen integrierten YourKit-Profilierungsagenten enthalten. Nicht kostenlos, aber enthalten, also denke ich im Zusammenhang mit meiner ursprünglichen Frage :)
Rogerdpack

4
Nein, mit YourKit Agent können Sie einen CPU- / Speicher-Snapshot erstellen, wenn Sie sich wegen Leistungsproblemen an den Support wenden. Es ist nicht der Profiler selbst, der Sie zusätzlich über 500 US-Dollar kostet.
CrazyCoder

1
@rogerdpack Warum nicht einfach VisualVM öffnen (Sie haben es bereits über das JDK installiert), Ihre App auswählen und das Profil drücken?
Matsemann

3
Das Problem mit VisualVM, das vom VisualVM Launcher-Plugin von Krasa gestartet wurde: 1) Zum Zeitpunkt des Teststarts ist der Test abgeschlossen. 2) On-Fly-Profiling erzeugt Hotspots und schwer lesbare CPU-Zeitstatistiken. Es gibt ein Kontrollkästchen "Konfiguration bearbeiten" in VisualVM, aber ich sehe nicht, wie man das Plugin auffordert, den Test richtig zu starten - warten Sie, bis VisualVM gestartet und bereit ist - laden Sie die testspezifische Profilkonfiguration in VisualVM - führen Sie den Testcode aus
lächeln Sie am

1
@ smile-on Haben Sie eine Lösung für das Problem gefunden, bei dem Ihre Tests vor dem Start von VisualVM abgeschlossen sind? Ich habe selbst das gleiche Problem.
Stephen Murby

27

Stephen Murby wies darauf hin, dass "das Problem darin besteht, dass Ihre Tests vor dem Start von VisualVM abgeschlossen sind".

Ja, dieses VisualVMLauncher-Plug-In hält Ihren Testfall erst in der Warteschleife, wenn VisualVM gestartet wurde. Möglicherweise benötigen Sie auch Zeit, um die für den Test spezifischen Profileinstellungen manuell zu ändern. Die Lösung ist einfach: Ihr Testfall muss anhalten und warten, bis Sie ihn manuell anweisen, fortzufahren. Es gibt nur wenige Möglichkeiten:

1) setze System.in.read (); Drücken Sie als erste Zeile des Testfalls und wenn VisualVM bereit ist, die Eingabetaste an der Konsole.

System.in.read();

2) Wenn der Testfall-Runner Ihnen keine Konsole zur Verfügung stellt, warten Sie, bis eine magische Datei erstellt wurde.

3) Sie können immer locker mit dem Schlaf spielen ()

sleep(5 seconds);

Diese Umgehung ist nicht sehr praktisch, funktioniert aber für mich, da ich gelegentlich ein Profil erstellen muss. Die Hauptursache des Problems liegt in der Plug-In-Architektur von IDEA, und VisualVM wird nicht als kollaborativ angesehen. Siehe Diskussion mit dem Plug-In-Autor. Hoffnung, das hilft.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.