Tengo esta aplicación web que necesita un ajuste de memoria. Aunque ya estoy perfilando la aplicación y recortando cosas, la JVM en sí misma me parece demasiado hinchada en nuestra instancia más ocupada. (Los casos de menor volumen no tienen este problema.) Los detalles:¿Qué impacto, si corresponde, tiene el conmutador -d64 en el uso de la memoria residente de Sun JVM?
- Plataforma:
- RHEL4 64 bits (
Linux 2.6.9-78.0.5.ELsmp #1 SMP x86_64
) - Sun Java 6 (
Java HotSpot(TM) 64-Bit Server VM (build 10.0-b23, mixed mode)
) - Tomcat 6 con
-d64
enstartup.sh
- RHEL4 64 bits (
- Mi webapp actualmente tiene algún código que en producción requiere los beneficios de ejecutando 64 bits.
- He observado que después de un tiempo (una semana) el tamaño de memoria residente de las JVM (como se muestra arriba) es tres veces el tamaño de mi configuración -Xmx.
- El tamaño de la memoria no-montón, etc, son todos relativamente trivial, una mera porcentaje de un solo dígito del tamaño de la pila
- Sólo hay una sección de código que requiere un espacio de dirección de bit de 64 bits
Si pudiera refactorizar la necesidad de una JVM de 64 bits y soltar el interruptor -d64
, ¿eso reduciría la huella de memoria residente de la JVM? En otras palabras ...
¿Qué impacto, si lo hay, tiene el conmutador -d64
en el uso de la memoria residente de Sun JVM?
Fantástica respuesta. Me convenciste para refactorizar mi código y soltar el -d64. Volveré y comentaré cómo va.También trabajaré en una actualización de JVM para poder probar -XX: + UseCompressedOops. Gracias. ¡Has ganado * el premio Stu's World Famous "Impresionante codificador del mes" * de septiembre de 2009! –
Guau, nunca supe que google-fu dilucidara tal reacción. Gracias, estoy sorprendido por tu respuesta! Por cierto, si logras mantener tu montón de menos de 4 GB, tu JVM de 64 bits se comportará como una de 32 bits; sin embargo, no estoy seguro de ningún impacto en el rendimiento. –
Más que Google-fo !!! Miré a mi alrededor, y estaba * pensando * que valdría la pena el esfuerzo ... pero hay * tantos cambios en JVM, y valores, y casos si-luego-pero, y gotchyas. Puede ser abrumador, y mi necesidad fue una respuesta * "hazlo" */* "no molestar" *, acompañada de una alimentación relevante con cuchara. Gracias de nuevo. –