Ehcache talks about堆内和堆外内存。有什么区别?哪些JVM arg用于配置它们?

最佳答案

堆上存储是指将在Java堆中存在的对象(也受GC约束)。另一方面,堆外存储是指(序列化的)对象,这些对象由EHCache管理,但存储在堆外部(并且不受GC限制)。随着堆外存储继续在内存中进行管理,它比堆上存储稍慢,但仍比磁盘存储快。

在问题中发布的链接中,与堆外存储的管理和使用有关的内部细节不是很明显,因此明智的方法是检查用于管理堆外资源的Terracotta BigMemory的详细信息。磁盘存储。 BigMemory(堆外存储)用于避免GC在数兆字节或千兆字节的堆上的开销。 BigMemory通过direct ByteBuffers使用JVM进程的内存地址空间,与其他本机Java对象不同,该地址空间不受GC影响。

关于java - “堆上”和“堆外”之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50081020/

10-10 11:28