JVM de Júpiter


De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

Jupiter JVM es una máquina virtual Java de código abierto , que se ha desarrollado como una tesis de maestría teniendo en cuenta la modularidad y la extensibilidad. Utiliza el recolector de basura Boehm y GNU Classpath . Los aspectos principales de su diseño de la Máquina Virtual Júpiter se pueden simplificar como:

  • Localidad de memoria : los objetos se asignan en el montón con poca o ninguna consideración por la localidad. Si bien este enfoque puede ser apropiado para monoprocesadores o SMP de pequeña escala, es poco probable que funcione bien en un grupo de estaciones de trabajo donde el acceso a la memoria remota es uno o dos órdenes de magnitud más lento que el acceso a la memoria local.
  • Recolección de basura en paralelo: la recolección de basura puede consumir una cantidad considerable de tiempo de aplicación. Normalmente, las JVM emplean recolectores de basura "stop-the-world", donde los subprocesos del programa se detienen durante la recolección de basura. Este enfoque no funcionará para un gran número de procesadores, por dos razones. Primero, el costo de "detener el mundo" es considerablemente mayor cuando el número de procesadores es grande. En segundo lugar, el uso de un solo hilo para recolectar basura da como resultado una fracción secuencial inaceptablemente grande para cualquier aplicación.
  • Modelo de coherencia de la memoria : para lograr un rendimiento de escala en muchos procesadores, es importante aprovechar el modelo de memoria Java "relajado" . Actualmente, ninguna JVM implementa la JMM fielmente y, de hecho, muchas la implementan de manera incorrecta, lo que genera falta de coherencia y pérdida de oportunidades de optimización. La especificación del JMM también se revisó en 2007.
  • Subprocesos eficientes y sincronización : con muchos procesadores, es fundamental proporcionar mecanismos de sincronización y soporte de subprocesos eficientes que escalen bien.

Ver también

enlaces externos