Úselo para acceder y asignar grandes cantidades de memoria de manera eficiente, como en su propio motor de vóxel. (es decir, juego de estilo Minecraft).
En mi experiencia, la JVM a menudo no puede eliminar la verificación de límites en el lugar donde realmente la necesita. Por ejemplo, si está iterando sobre una matriz grande, pero el acceso a la memoria real está oculto debajo de una llamada de método no virtual * en el bucle, la JVM aún puede realizar una verificación de límites con cada acceso a la matriz, en lugar de una vez justo antes el lazo. Por lo tanto, para obtener ganancias de rendimiento potencialmente grandes, puede eliminar la verificación de límites de JVM dentro del bucle a través de un método que emplea sun.misc.Nosafe para acceder a la memoria directamente, asegurándose de hacer cualquier verificación de límites usted mismo en los lugares correctos. (Usted está gonna comprobación de límites en algún nivel, ¿verdad?)
* por no virtual, quiero decir que la JVM no debería tener que resolver dinámicamente cualquiera que sea su método en particular, porque ha garantizado correctamente que la clase / método / instancia son una combinación de static / final / what-have-you.
Para mi motor de vóxel de cosecha propia, esto resultó en un aumento dramático del rendimiento durante la generación y la serialización de fragmentos (en algunos lugares donde estaba leyendo / escribiendo en toda la matriz de una vez). Los resultados pueden variar, pero si la falta de eliminación de límites es su problema, esto lo solucionará.
Hay algunos problemas potencialmente importantes con esto: específicamente, cuando proporciona la capacidad de acceder a la memoria sin verificar los límites a los clientes de su interfaz, probablemente abusarán de ella. (No olvide que los piratas informáticos también pueden ser clientes de su interfaz ... especialmente en el caso de un motor de vóxel escrito en Java). Por lo tanto, debe diseñar su interfaz de tal manera que no se pueda abusar del acceso a la memoria, o usted debe ser extremadamente cuidadoso para validar datos de usuario antes de que pueda nunca, nunca se mezclan con su interfaz peligroso. Teniendo en cuenta las cosas catastróficas que un pirata informático puede hacer con el acceso a la memoria sin control, probablemente sea mejor adoptar ambos enfoques.