2010-12-09 28 views
5

cuando se ejecuta la JVM en modo detallado muestra que se cargan archivos desde el archivo objeto compartido, como se muestra a continuación¿qué es el archivo de objetos compartidos?

[Loaded java.lang.Object from shared objects file] 
[Loaded java.io.Serializable from shared objects file] 
[Loaded java.lang.Comparable from shared objects file] 
[Loaded java.lang.CharSequence from shared objects file] 

¿Qué es esto objetos compartidos de archivos? Pensé que estos son archivos en rt.jar y se cargan desde allí; pero rt.jar está consiguiendo abrió en largo camino hacia abajo

[Loaded java.security.BasicPermissionCollection from shared objects file] 
[Opened C:\Program Files\Java\jre6\lib\rt.jar] 
[Loaded sun.misc.JavaSecurityProtectionDomainAccess from C:\Program Files\Java\jre6\lib\rt.jar] 
[Loaded java.security.ProtectionDomain$2 from C:\Program Files\Java\jre6\lib\rt.jar] 

ninguna manera después de extraer el rt.jar i encontrado que tiene todas las clases que se cargan desde el archivo objeto compartido.

Respuesta

5

Este es el intercambio de datos de clase. Al ejecutar Sun/Oracle Client HotSpot y habilitar para compartir (ya sea -Xshare:auto que es el predeterminado, o -Xshare:on), el archivo classes.jsa está mapeado en la memoria. Este archivo contiene varias clases (enumeradas en el archivo classlist) en una representación interna adecuada para la configuración exacta de la máquina que la ejecuta. La idea es que las clases se puedan cargar rápidamente, haciendo que la JVM suba más rápido. Muy pronto se golpeará una clase no cubierta, y se deberá abrir rt.jar y se cargarán las clases de manera convencional según sea necesario.

Referencia:

+0

Esta respuesta puede necesitar para citar algunas fuentes .... – Pacerier

+0

@Pacerier agrega a las citas. –

Cuestiones relacionadas