Llegamos a ustedes gracias a:



Noticias

JVM podría soportar los procesadores multinúcleo de hoy

[28/06/2017] Oracle está proponiendo una actualización de Java Virtual Machine para permitir los tipos de clase de valor directo, una modernización necesaria por la llegada de los procesadores multinúcleo. No hay ningún cronograma para cuando los cambios puedan aparecer en la JVM.

Los cambios a la especificación JVM soportarían un prototipo de clases de valor - clases para las cuales se pueden crear instancias de valor no referenciales del tipo primitivo y actuar sobre ellas. "Las propuestas de tipos de valor en Java tratan de dar a los desarrolladores la alternativa de dejar de lado la identidad y el polimorfismo para que el runtime pueda representar a los datos subyacentes de una manera que sea mucho más compacta y mucho más adecuada para el procesamiento de las operaciones en bloque, afirmó Georges Saab, vicepresidente de desarrollo de software en el grupo de plataforma Java de Oracle.

Al explicar el plan, Saab afirmó que cuando Java fue creado en 1995, el acceso a la memoria y las instrucciones de la CPU requerían aproximadamente la misma cantidad de tiempo. Desde entonces, la introducción de los procesadores multinúcleo ha incrementado la velocidad de las instrucciones de la CPU, pero convirtió a localidad de la memoria un desafío.

Para los elementos básicos de Java, este desfase de tiempo no es un problema. Pero es un problema para los objetos, debido a supuestos inherentes sobre la identidad y el polimorfismo, afirmó Saab.

La actualización también introduce el atributo ValueCapableClass y describe la forma en que las clases de valor se derivan de las clases con este atributo. Además, la relación entre las clases y los tipos se separarían, y algunas instrucciones se mejorarían para operar en los tipos de clases de valor directo.

La JVM espera que casi toda la comprobación de tipos se haga antes del runtime, generalmente por parte del compilador en lugar de hacerlo la propia JVM. Así, los valores directos propuestos no necesitarían ser etiquetado o ser inspeccionables para determinar su tipo en el runtime o para distinguirse de los valores de referencia.