È possibile creare un oggetto di memoria persistente all'esterno della memoria JVM che può essere utilizzato all'interno della JVM come oggetto, in modo che sopravviva al riavvio di JVM?Allocazione della memoria all'esterno di JVM e utilizzo all'interno di JVM
L'idea particolare è che possiamo allocare memoria al di fuori della JVM e quindi utilizzare un'interfaccia JNI per accedere a questa memoria e associare, ad esempio, alcuni array Java con esso.
Qualcuno ha provato a eseguire questo tipo di trucco? Qualsiasi dipendenza dalla piattaforma sarebbe sufficiente.
Ad esempio, questo può aiutare ad eseguire l'ottimizzazione del caricamento del DB in memoria durante il riavvio del processo JVM.
Non sarà certamente possibile assegnarlo a un vero array java, come un 'float []' o così. Ma tu * puoi * usare la memoria allocata esternamente in java, restituendola come diretta [ByteBuffer] (https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html) che era creato tramite JNI con [NewDirectByteBuffer] (https://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/functions.html#NewDirectByteBuffer). Non sono sicuro di come realizzare un sopravvissuto a un riavvio di JVM (e non posso provarlo sensibilmente al momento), ma ** se ** questa parte può essere risolta, un 'ByteBuffer' diretto è probabilmente la strada da percorrere . – Marco13