Red de conocimiento informático - Conocimiento informático - Cómo encontrar todas las cadenas en el objeto de caché desde el volcado de memoria de Java mediante mat

Cómo encontrar todas las cadenas en el objeto de caché desde el volcado de memoria de Java mediante mat

Generar un archivo de volcado de memoria de Java

La práctica estándar, el volcado de jmap, requiere permisos sudo. Además, el usuario que inició el servicio debe poder escribir en el archivo de volcado especificado por jmap. carpeta

sudo mkdir /home/q/memdump

sudo chown resin: resin /home/q/memdump

sudo -u resin /home/q/ java/default /bin/jmap -dump:live,format=b,file=/home/q/memdump/ memMap. 20130527.hprof ${pid}

Transfiera el archivo de volcado a local

Comprima el archivo de volcado; de lo contrario, será muy grande, transfiéralo a local

Instalar mat directamente en eclipse

1.Ayuda->.Instalar nuevo software

2. Escriba el sitio de actualización: ing reference, porque todos los objetos en la aplicación web tienen como referencia su propia clase. loader

Es org.apache.catalina.loader.WebappClassLoader

3.WebappClassLoader

5 Obtenga la siguiente lista, haga clic en la pestaña Reservar montón para ordenar. la lista y seleccione Ordenar la lista en orden descendente de uso de memoria para obtener una lista de los principales consumidores de memoria

Ubicar el objeto de caché

En lo que nos centramos es en R. En lo que nos centramos es cuántos objetos duplicados hay en el RtTreeCache del consumidor principal. Cómo obtenerlos, siga los pasos a continuación:

1. Vea la referencia del objeto RtTreeCache saliente

. Debido a que necesitamos ver las propiedades de este objeto, y el objeto de propiedades también es un objeto RtTreeCache, necesitamos ver las propiedades de este objeto. Es el objeto al que hace referencia el objeto RtTreeCache, es decir, la referencia saliente

2 Encuentre la ubicación de los datos que necesitamos analizar en la estructura del objeto

3. Como se puede ver, el objetivo que estamos buscando Como se puede ver en todos los objetos HotelRtTree bajo el objeto RtTreeCache, nuestro objetivo es la clave de todas las entradas en la matriz de tabla bajo la propiedad del objeto RtReverseMap. Veamos cómo convertir esta larga relación en una declaración OQL simple

Escribir MAT OQL

OQL es un lenguaje de consulta integrado en MAT y su descripción oficial es muy Imagen:

Memory Analyzer tiene un lenguaje de consulta de objetos

(OQL) integrado, que permite utilizar consultas personalizadas similares a SQL para consultar volcados de montón.

Simplemente piense en las clases como tablas, los objetos como filas y los campos como columnas.

Resumen

jmap + mat es una excelente herramienta para analizar la memoria de Java. Usando mat

oql, podemos extraer más información del archivo de volcado. como cuántos objetos de cadena diferentes tienen el mismo contenido y otra información que nos ayuda a tomar decisiones técnicas.