Las opciones de instrumentación registran lo que hace un proceso de Elide mientras se ejecuta.
| Pregunta | Captura | Inspeccionar con |
|---|---|---|
| ¿Qué ocurrió durante la ejecución? | --jfr=run.jfr | jfr del JDK |
| ¿Qué hay en el heap? | --heap-dump=heap.hprof | VisualVM |
| ¿Cómo se comporta el heap con el tiempo? | --vmstat | jps, jstat |
| ¿Qué hace un proceso en ejecución? | jcmd PID | JFR, volcados del heap, pilas de hilos |
| ¿Dónde gasta tiempo de CPU el código compilado? | --jitdump=DIR | perf de Linux |
Liste las opciones con elide help instruments. Se aplican a run y a scripts, fragmentos y módulos. Póngalas antes
de cualquier -- o -m MODULE. Una instalación del JDK 25 proporciona jfr, jcmd, jps y jstat;
VisualVM lee los volcados del heap. Para cobertura, trazado de CPU y
depuradores, consulte Depuración. Para exportar trazas, métricas y registros a un backend de
observabilidad, consulte OpenTelemetry.
Grabar con JFR
elide --jfr=run.jfr run app.js
jfr summary run.jfr
jfr print --events 'dev.elide.*' run.jfr--jfr usa la configuración profile y guarda al salir normalmente. --jfr-settings=default o una ruta .jfc
elige otra configuración. Los nombres de archivo y la configuración no pueden contener comas ni comillas dobles.
| Evento | Registra |
|---|---|
dev.elide.Boot | El arranque terminó; elapsedNanos es el tiempo de arranque. |
dev.elide.GuestStart / dev.elide.GuestStop | Ejecución del programa de entrada, con lenguaje, duración, resultado y código de salida. |
dev.elide.HttpRequest / dev.elide.HttpResponse | Una petición atendida, con método, protocolo, estado y duración. |
dev. | Una petición saliente, con tiempo en cola y de conexión, protocolo, estado y bytes del cuerpo. |
dev. | Un handshake TLS, con duración, rol, resultado y ALPN. |
dev.elide.Execution | El comando terminó, con su código de salida. |
No se registran URL, cabeceras ni cargas útiles.
Volcar el heap
elide --heap-dump=heap.hprof run app.js
elide --heap-dump-on-oom=oom.hprof run app.js
visualvm --openfile heap.hprof--heap-dump escribe al salir normalmente. --heap-dump-on-oom escribe ante un error de falta de memoria y después
termina sin ejecutar los hooks de apagado.
Observar un proceso en ejecución
elide --vmstat run app.js &
jps -l
jstat -gc PID 1s--vmstat muestra el proceso en jps (por PID, sin nombre) y permite que jstat lo muestree. jcmd se conecta por
PID con o sin --vmstat, en Linux y macOS, con el mismo usuario del sistema operativo:
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.printUn proceso terminado a la fuerza no escribe sus capturas. Vuelque una grabación en curso con jcmd antes de
detenerlo.
Perfilar con perf en Linux
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 funciona en las compilaciones release para Linux. Conserve el directorio jitdump hasta que termine
perf inject. Las funciones que se ejecutan con frecuencia aparecen bajo objetos jitted-. Un código de salida cero no
garantiza una captura válida; compruebe que el informe muestra sus funciones. En WSL2, perf debe coincidir con el
kernel en ejecución.
Opciones de la VM
Cada opción tiene una forma equivalente como opción de la VM:
--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 vuelca el heap inicial y después termina. -Xmx y
-XX:MaxHeapSize son el mismo ajuste que --max-mem; pasar ambos es un error.