Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
aplicaciones java
Conceptos Java y
arquitectura JVM
1
Un poco de historia
2
Un poco de historia
3
Arquitectura de la plataforma J2SE
5
Herramientas incluidas en el JDK
6
Características Máquina Virtual Java JVM
Definición
– Es una máquina abstracta que contiene un
conjunto de instrucciones que le permite
manipular la memoria en tiempo de ejecución.
– El bytecode generado en el proceso de
compilación es interpretado por la máquina
virtual.
– Existen implementaciones de la máquina virtual
para diferentes plataformas, proporcionando
independencia del sistema operativo y el
hardware. Write once run anywhere (WORA)
7
Características Máquina Virtual Java
9
HotSpot
Ergonomía (Ergonomics)
– Las mejoras presentes en la versión J2SE 1.5 (Ergonomía)
tratan de proporcionar un buen rendimiento para la JVM con
una mínima utilización de las opciones (en línea de comandos).
10
Comportamiento del GC
13
GC: Áreas de memoria (heap)
14
Tipos de GC
15
Hotspots
http://download.java.net/jdk7/docs/technotes/guides/vm/gc-ergonomics.html
16
Hotspots
17
Cambios en Java Virtual Machine
Mejoras
En JDK 5.0:
– Class Data Sharing
– Server-Class Machine Detection
– Garbage Collection Ergonomics
– Thread Priority Changes
– Otras mejoras
En JDK 6.0:
– DTtrace Probes
– Garbage Collection Enhancements
Parallel Compaction
Mejoras en Concurrent Mark Sweep Collector
– Mayor rendimiento
18
Cambios en Java Virtual Machine
Mejoras en JDK 5.0
Class Data Sharing
Consiste en el volcado de determinadas clases core a un archivo que
será compartido por todas las instancias de las máquinas virtuales.
Además este archivo está diseñado para ser leído directamente por un
HotSpot.
Ventajas
- Disminución del tiempo de arranque de la máquina virtual.
- Al compartir todas las instancias el mismo archivo eliminamos la duplicidad que existía
antes al tener que cargar todas las clases por instancia de máquina virtual.
Inconvenientes
- No soportado en Windows 95/98/ME
- Solo disponible en VM Client
- Solo disponible con el Garbage Collector de serie
Fuente:http://java.sun.com/javase/6/docs/technotes/guides/vm/class-data-sharing.html
19
Cambios en Java Virtual Machine
20
Cambios en Java Virtual Machine
http://java.sun.com/javase/6/docs/technotes/guides/vm/server-class.html
21
Cambios en Java Virtual Machine
22
Cambios en Java Virtual Machine
http://forums.sun.com/thread.jspa?forumID=31&threadID=550529
http://www.javaworld.com/javaworld/jw-09-1998/jw-09-threads_p.html
Otras mejoras
– El mecanismo de aviso de errores fatales ha mejorado en el
diagnóstico y fiabilidad.
– Soporte de granularidad de nanosegundos para mediciones
de tiempos (dependiente de plataforma).
23
Cambios en Java Virtual Machine
http://java.sun.com/javase/6/docs/technotes/guides/vm/par-compaction-6.html
https://java.sun.com/j2se/reference/whitepapers/memorymanagement_whitepaper.pdf
25
Cambios en Java Virtual Machine
Mejoras en JDK 6.0
Mejoras en el Garbage Collector (Cont.)
- Concurrent Mark Sweep Collector Enhancement (Concurrent Low Pause
Collector)
– Conocido como recolector paralelo de pausa baja o CMS. Está destinado a aplicaciones
que son sensibles a pausas prolongadas provocadas por el GC potenciando la
actividad del GC concurrentemente. Utilizado en máquinas con múltiples
procesadores. Uso: -XX:+UseConcMarkSweepGC
26
Cambios en Java Virtual Machine
27 Fuente: http://java.sun.com/performance/reference/whitepapers/6_performance.html