Cómo apilar rastrear un proceso de ejecución en Java

Cómo apilar rastrear un proceso de ejecución en Java
Un rastro de pila no es más que la ubicación de las excepciones en los programas de Java o puede decir que se usa para encontrar esas líneas de un código donde ocurren excepciones. Una traza de pila funciona de la misma manera que una pila de papeles en su escritorio, lo más importante, lo último. Agregas papeles a la pila y luego los sacas en el orden inverso. Incluye detalles sobre un proceso u operación que invocó su código. Como resultado, Java Stack Trace es una secuencia de marcos que comienza con el método actual y termina con el inicio del programa.

La pila, también conocida como el tiempo de ejecución o la pila de llamadas, es una colección de marcos de pila creados por un programa mientras se ejecuta y se almacena en una estructura de datos de pila. Java Virtual Machine (JVM) generará automáticamente un rastro de pila cuando ocurra una excepción. Por lo tanto, este artículo le proporcionará la guía de cómo puede usar el rastro de la pila del proceso de ejecución en Java.

¿Qué es el rastreo de pilas en Java?

Ahora, antes de crear un archivo Java, debe asegurarse de haber instalado la aplicación Java Development Kit (JDK) en su sistema operativo Linux, de lo contrario, no podrá ejecutar ningún programa Java escribiendo:

$ sudo apt instalación predeterminado-jdk

Después de instalar esta aplicación de requisito previo, debe crear un archivo Java y una de las formas más fáciles de hacerlo es utilizando cualquier editor de texto escribiendo:

$ nano javastacktrace.Java

Después de crear un archivo Java, el siguiente paso es escribir y guardar un código que se pueda ver a continuación:

Después de guardar un archivo Java, el siguiente paso es compilarlo y ejecutarlo:

$ javac javastacktrace.Java
$ java javastacktrace

Puedes ver que hemos escrito Demofun3 () Como la última función al escribir un código, pero se ha ejecutado en la segunda línea, ya que este es el punto de generación de trazas que será responsable de ejecutar el Dumpstack () que mostrará la salida en la pantalla. Las funciones restantes a partir de Demofun2 () a Demofun () se ejecutará después en el orden inverso y el principal() La función se muestra en la parte inferior, ya que es responsable de iniciar el programa y también llamará a otras funciones también.

Puede decir que el punto de ejecución de la pila comienza desde la primera línea y el marco de la pila comienza desde la segunda línea hasta la última línea que constituye todo el rastro de la pila. Podemos observar que el método que se realiza primero se convierte en el último marco de la pila del rastro de pila, mientras que el método que se ejecuta por última vez se convierte en el primer marco de pila del rastreo de pila y, como resultado, cada pieza de rastreo de pila representa un marco de pila.

Cómo apilar rastro de un proceso de ejecución

Jstack es una gran herramienta para resolver problemas de tiempo de ejecución, especialmente si su aplicación está actuando, consumiendo más CPU o memoria de lo esperado, entonces puede solucionar la aplicación. Implementarlo en Java:

clase pública Forcedump
public static void main (string [] args) lanza la excepción
intentar
while (verdadero)
Hilo.Sleep (2000);

Catch (nullPointerException demo)
Manifestación.printStackTrace ();


Después de eso, puede crear un archivo Java usando cualquier editor de texto como lo hicimos mediante el uso de un editor de texto Nano como se muestra a continuación

$ nano forcedump.Java

Después de eso, compítelo usando:

$ Javac Forcedump.Java

Y ejecutar:

$ Java Forcedump

Después de ejecutar este programa, se iniciará un proceso de fondo; Para encontrar la ID de proceso (PID), abra otra ventana de terminal y use:

$ PS aux | Grep FORCEDUP

Luego puede encontrar información adicional sobre los subprocesos que se ejecutan en un proceso utilizando el comando a continuación:

$ jstack

La identificación del proceso es 4457 como se muestra en la imagen:

$ jstack 4457

Conclusión

Un Stack Trace es una colección de marcos de pila que ilustra un momento específico en el tiempo durante la ejecución de un programa. Incluye detalles sobre un método o función que invocó su código. Por lo tanto, el Java Stack Trace es una serie de cuadros que comienza con el método actual y termina con el comienzo del programa. En este artículo, le hemos mostrado cómo puede implementar el proceso de rastreo de pila en el lenguaje de programación Java.