我正在为一个应用程序评估MapDB。我按照以下方式创建数据库。
DB db = DBMaker.fileDB(new File("mapdbtest1")).cacheHashTableEnable()
.cacheSize(50000).closeOnJvmShutdown()
.encryptionEnable("password").make();
在数据库中放入50000个对象然后显式调用GC后,使用的大小太小,看起来对象不再存在于内存缓存中。我期待cacheSize没有。对象总是在内存中,不管GC或OOM如何,其余部分都要交换。
=======================
Memory : after committing to DB
free memory: 1426 MB
allocated memory: 2860 MB
used memory: 1433 MB
max memory: 3641 MB
total free memory: 2207 MB
=======================
=======================
Memory : after gc
free memory: 2479 MB
allocated memory: 2494 MB
used memory: 14 MB
max memory: 3641 MB
total free memory: 3626 MB
=======================
我的理解错了吗?