Quiero conocer las funciones internas de la JVM, cómo funciona y los detalles que importan. ¿Puede sugerir algún recurso o el mejor libro disponible para esto?Comprensión de JVM Better
Respuesta
La mayor parte de lo que sé de la JVM proviene de los documentos de Sun. Tienen algunos documentos técnicos sobre el HotSpot VM: http://java.sun.com/javase/technologies/hotspot/index.jsp
Usted mencionó rendimiento, así que tal vez estaría interesado en la documentación de rendimiento Sun: http://java.sun.com/docs/performance/
Durante más enfoque en las manos, intente buscar en Kaffe. Esto le mostrará lo que hace una máquina virtual, pero no necesariamente la forma en código Java funciona en la máquina virtual Java de Sun:
Kaffe es una implementación de sala limpia de la máquina virtual de Java, además de las bibliotecas de clases asociados necesaria para proporcionar un tiempo de ejecución de Java ambiente.
Y el OpenJDK es un gran lugar para aprender acerca de cómo se implementa la Plataforma Java: http://openjdk.java.net/
La primera opción obvia es The Java Virtual Machine Specification. También hay The Wikipedia Page, que enlaza con recursos adicionales.
capítulos de "Dentro del Java 2 Virtual Machine":
http://www.artima.com/insidejvm/ed2/index.html
"bajo el capó" artículos de Bill Venners
http://www.artima.com/underthehood/index.html
También hay "Jazmín", un Assember para JVM, si quieres ensuciarte las manos y probar la programación de bajo nivel con la JVM.
Si su motivación es averiguar cómo escribir código que funciona más rápido o usa menos memoria de la especificación VM no ayudará demasiado.
La especificación de VM no está diseñada para brindarle información al respecto, sino que está diseñada para que el desarrollador de VM sepa, más o menos, cómo implementar la VM.
Dicho esto, no puede leerlo.
La mejor manera de averiguar acerca de los problemas de velocidad/memoria es a un nivel mucho más alto, hay una cantidad de libros que le ayudarán a obtener un código más rápido/más simple.
Un generador de perfiles es una herramienta invaluable para probar su código y ver qué es más rápido/utiliza menos memoria. Perfil, vea qué es lento/usa mucha memoria, cámbielo, perfil, vea qué hicieron los cambios.
A continuación se muestra un enlace a mi profundo curso de Java en la plataforma en línea Udemy. Tiene un capítulo entero completo sobre JVM con alrededor de 3 horas de video. Cubre todo, desde Lifetime de un tipo, áreas de datos en tiempo de ejecución, reflexión, recolección de basura, pilas de acumuladores & y conjunto de instrucciones. "Dentro de la máquina virtual Java 2", el libro en línea mencionado en una de las respuestas se usa como uno de los libros de referencia.
https://www.udemy.com/java-in-depth-become-a-complete-java-engineer/
Aquí es una buena y breve explicación del montón, objetos de asignación, y la recolección de basura, Understanding Memory Management. Puede explorar más desde allí.
- 1. Documentación de Better D
- 2. ¿Está utilizando Better?
- 3. ¿Una referencia de Better Boost?
- 4. Better windows command line shells
- 5. Better Html Builder en java
- 6. Herramientas de perfilado de memoria Better Flex
- 7. A Better C# Poker Framework Design?
- 8. WithEvents/Handles better than Remove/AddHandler?
- 9. Reflection.Emit better than GetValue & SetValue: S
- 10. MySQL explicar Comprensión de la comprensión
- 11. A Better Django Admin ManyToMany Widget de campo
- 12. Dashcode comprensión
- 13. comprensión fft
- 14. comprensión TTNavigator
- 15. comprensión OptionParser
- 16. diagrama de clases comprensión
- 17. Comprensión de symfony2 deps
- 18. lista pregunta de comprensión
- 19. Comprensión de UIGraphicsGetCurrentContext()
- 20. Comprensión de los colores
- 21. SetProgressBarIndeterminateVisibility falta de comprensión
- 22. Comprensión de MsgWaitForMultipleObjects
- 23. Comprensión de OpenGL Matrices
- 24. Comprensión de uboot.lds
- 25. Comprensión de Scrum
- 26. Comprensión de LongWritable
- 27. Comprensión de las interfaces
- 28. Comprensión de varios subprocesos
- 29. resultados comprensión de mongostat
- 30. Comprensión de WCF