为什么引进非Java堆?
Java如果和外界通讯,把Java 堆中的内容传输到外界,则需要把Java堆复制到非Java堆,如果使用native堆,则避免了内容在Java堆和非Java堆之间的copy.
在什么场景下使用非Java堆?
非Java堆的回收不受java yong gc的影响,一般需要手工进行回收。如果大量的使用非Java堆,则丢失了Java 自动垃圾回收的特点。
一般使用非Java堆进行和外界通讯,并且做为缓存使用。如DirectByteBuffer。
本文探讨了非Java堆的引入原因,主要是为了优化Java与外界通讯时的数据传输效率,避免频繁复制Java堆内容。非Java堆适用于作为缓存和与外界通讯,如DirectByteBuffer的使用。然而,其垃圾回收需手动操作,使用不当会失去Java自动垃圾回收的优势。
为什么引进非Java堆?
Java如果和外界通讯,把Java 堆中的内容传输到外界,则需要把Java堆复制到非Java堆,如果使用native堆,则避免了内容在Java堆和非Java堆之间的copy.
在什么场景下使用非Java堆?
非Java堆的回收不受java yong gc的影响,一般需要手工进行回收。如果大量的使用非Java堆,则丢失了Java 自动垃圾回收的特点。
一般使用非Java堆进行和外界通讯,并且做为缓存使用。如DirectByteBuffer。