Die Instrumentierungs-Flags zeichnen auf, was ein Elide-Prozess während der Ausführung tut.
| Frage | Aufzeichnung | Auswerten mit |
|---|---|---|
| Was ist während des Laufs passiert? | --jfr=run.jfr | jfr aus dem JDK |
| Was liegt im Heap? | --heap-dump=heap.hprof | VisualVM |
| Wie verhält sich der Heap über die Zeit? | --vmstat | jps, jstat |
| Was tut ein laufender Prozess? | jcmd PID | JFR, Heap-Dumps, Thread-Stacks |
| Wo verbraucht kompilierter Code CPU-Zeit? | --jitdump=DIR | Linux perf |
Listen Sie die Flags mit elide help instruments auf. Sie gelten für run sowie für Skripte, Snippets und Module.
Setzen Sie sie vor jedes -- oder -m MODULE. Eine JDK-25-Installation liefert jfr, jcmd, jps und jstat;
VisualVM liest Heap-Dumps. Zu Abdeckung, CPU-Tracing und Debuggern siehe
Debugging. Um Traces, Metriken und Logs an ein Observability-Backend zu exportieren, siehe
OpenTelemetry.
Mit JFR aufzeichnen
elide --jfr=run.jfr run app.js
jfr summary run.jfr
jfr print --events 'dev.elide.*' run.jfr--jfr nutzt die Einstellungen profile und speichert beim normalen Beenden. --jfr-settings=default oder ein
.jfc-Pfad wählt andere Einstellungen. Dateinamen und Einstellungen dürfen keine Kommas oder doppelten
Anführungszeichen enthalten.
| Ereignis | Zeichnet auf |
|---|---|
dev.elide.Boot | Start abgeschlossen; elapsedNanos ist die Startzeit. |
dev.elide.GuestStart / dev.elide.GuestStop | Lauf des Einstiegsprogramms, mit Sprache, Dauer, Ergebnis, Exit-Code. |
dev.elide.HttpRequest / dev.elide.HttpResponse | Eine bediente Anfrage, mit Methode, Protokoll, Status, Dauer. |
dev. | Eine ausgehende Anfrage, mit Warte- und Verbindungszeit, Protokoll, Status und Body-Bytes. |
dev. | Ein TLS-Handshake, mit Dauer, Rolle, Ergebnis und ALPN. |
dev.elide.Execution | Der Befehl ist beendet, mit seinem Exit-Code. |
URLs, Header und Nutzdaten werden nicht aufgezeichnet.
Heap-Dump erstellen
elide --heap-dump=heap.hprof run app.js
elide --heap-dump-on-oom=oom.hprof run app.js
visualvm --openfile heap.hprof--heap-dump schreibt beim normalen Beenden. --heap-dump-on-oom schreibt bei einem Out-of-Memory-Fehler und beendet
dann den Prozess, ohne Shutdown-Hooks auszuführen.
Laufenden Prozess beobachten
elide --vmstat run app.js &
jps -l
jstat -gc PID 1s--vmstat führt den Prozess in jps auf (per PID, ohne Namen) und lässt jstat ihn abfragen. jcmd verbindet sich
per PID mit oder ohne --vmstat, unter Linux und macOS, als derselbe Betriebssystembenutzer:
jcmd PID help
jcmd PID JFR.start name=profile settings=profile
jcmd PID JFR.dump name=profile filename=live.jfr
jcmd PID GC.heap_dump live.hprof
jcmd PID Thread.printEin gewaltsam beendeter Prozess schreibt seine Aufzeichnungen nicht. Sichern Sie eine laufende Aufzeichnung mit
jcmd, bevor Sie den Prozess stoppen.
Mit perf unter Linux profilieren
perf record -k 1 --call-graph fp -o perf.data -- elide --jitdump=./jitdump run app.js
perf inject -j -i perf.data -o perf.jit.data
perf report -i perf.jit.data--jitdump funktioniert in Linux-Release-Builds. Behalten Sie das Verzeichnis jitdump, bis perf inject fertig ist.
Häufig ausgeführte Funktionen erscheinen unter jitted--Objekten. Ein Exit-Code null beweist keine gültige
Aufzeichnung; prüfen Sie, dass der Bericht Ihre Funktionen zeigt. Unter WSL2 muss perf zum laufenden Kernel passen.
VM-Optionen
Jedes Flag hat eine Schreibweise als VM-Option:
--jfr=run.jfr -XX:StartFlightRecording=filename=run.jfr,settings=profile,dumponexit=true
--heap-dump-on-oom=oom.hprof -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=oom.hprof -XX:+ExitOnOutOfMemoryError
--vmstat -XX:+UsePerfData
--jitdump=DIR -XX:+RuntimeJitdump -XX:RuntimeJitdumpDir=DIR-XX:+DumpHeapAndExit -XX:HeapDumpPath=initial.hprof schreibt einen Dump des anfänglichen Heaps und beendet sich dann.
-Xmx und -XX:MaxHeapSize sind dieselbe Einstellung wie --max-mem; beide anzugeben ist ein Fehler.