Cómo encontrar todas las cadenas en el objeto de caché desde el volcado de memoria de Java mediante mat
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 p>
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.