Red de conocimiento informático - Material del sitio web - Cómo determinar pérdidas de memoria según jprofiler

Cómo determinar pérdidas de memoria según jprofiler

Lo usé hace mucho tiempo, consúltelo:

El primero es iniciar el programa local mediante jprofiler

El segundo es monitorear de forma remota el modo CS de. el servidor en el lado del cliente. Debe estar en el lado del cliente. Instale jprofiler tanto en el cliente como en el servidor. El servidor necesita agregar un valor a la variable de entorno LD_LIBRARY_PATH como la ruta del archivo de la biblioteca JProfiler, como $JPROFILER_HOME/bin. /linux-x86, y luego envíe el script de inicio del lado del servidor al cliente y configúrelo en el cliente. Un paso es seleccionar el script (ubicar el script de inicio), jprofiler agregará parte de su propia configuración al script. Luego, el servidor utiliza el script de cambio de jprofiler para iniciarse. En este momento, realmente no se inicia. Está esperando que el cliente se active nuevamente. Cuando el cliente inicia jprofiler, puede monitorear de forma remota el jvm del servidor. Para programas locales, es fácil seguir el asistente.

Análisis:

1. Supongo que en la página Vistas de memoria, haga clic con el botón derecho en la clase que tiene más probabilidades de tener fugas y luego agregue la clase seleccionada al rastreador de clases. Es mejor agregar varias clases que se filtran con mayor frecuencia: String, char[], entradas HashMap y usar el nombre del paquete para filtrar las clases utilizadas en su proyecto.

2. tiempo, verifique la vista de memoria en la pestaña de seguimiento de clases, puede ver la cantidad de objetos registrados durante este período, si crece demasiado rápido o continúa creciendo sin liberar la fuga

3. ubique la clase y luego vea quién ha hecho referencia a ella, lo que hace que la memoria no se libere. En el asistente del montón, busque la clase ahora, haga clic derecho en ella y vea sus referencias para determinar el código fuente. la causa raíz.