gpt4 book ai didi

map.clear() 方法后未删除 MapDB 文件

转载 作者:行者123 更新时间:2023-12-05 07:17:21 24 4
gpt4 key购买 nike

我将 MapDB 用于键值数据库以获得更好的性能。在 map.clear() 之后我的文件没有在磁盘中删除。我需要在 remove() 或 clear() 方法之后回收磁盘空间。下面是我的代码片段。

    public static void mapDBPerformanceonFileDBStack() throws Exception{
String fileName ="testdatabase.db";
DB db = DBMaker
.fileDB(fileName)
.closeOnJvmShutdown()
.make();
Map myMap = db.hashMap("testmap").keySerializer(Serializer.INTEGER).valueSerializer(Serializer.STRING).createOrOpen();
System.out.println("Intial mapsize :" +myMap.size());
for(int i=0;i<100000;i++){
myMap.put(i,"key added" );
}
db.commit();
System.out.println("mapsize after the addition :"+myMap.size());
myMap.clear();
System.out.println("mapsize after clear :"+myMap.size());
db.commit();
db.close();
}

我的测试数据库文件大小在 map.clear() 之后未回收 - 在 clear() 之后大小相同。

最佳答案

        ...
Store[] stores = (HtreeMap)myMap.getStores();
for (Store store : stores) {
store.compact();
}
...
db.commit();
db.close();

关于map.clear() 方法后未删除 MapDB 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58821469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com