Java ocupa la información de pila de subprocesos de CPU más alta

jstack encuentra la información de la pila de subprocesos que ocupa la CPU más alta

package com.example.demo;
public class Math {
    public static final int initData = 666;
    public int compute() {
        //
        int a = 1;
        int b = 2;
        int c = (a + b) * 10;
        return c;
    }
    public static void main(String[] args) {
        Math math = new Math();
        while (true) {
            math.compute();
        }
    }
}

1. Use el comando superior o el número de proceso top -p para especificar el estado de la memoria de su proceso java, y pid es su número de proceso java, como 19663

imagen.png

2. Presione H para obtener el estado de la memoria de cada hilo

imagen.png

3. Busque el hilo tid con el mayor uso de memoria y CPU, como 19664

4. Convierta a hexadecimal para obtener 0x4cd0, que es la representación hexadecimal de la identificación del subproceso

5. Ejecute jstack 19663|grep -A 10 4cd0 y obtenga las últimas 10 líneas del subproceso 4cd0 en la información de la pila de subprocesos. Desde la pila, puede encontrar el método de llamada que hace que la CPU se dispare.

imagen.png

6. Verifique la información de la pila correspondiente para averiguar el código que puede tener problemas

Supongo que te gusta

Origin blog.csdn.net/robinhunan/article/details/131008542
Recomendado
Clasificación