java - MapDB集合大小问题

标签 java memory-management dictionary mapdb

我正在使用 MapDB 0.9 快照。我有一些包含数百万条记录 String->String 的集合。 我的问题是,此类 ConcurrentMap 上的方法 size() 需要大量时间和大量内存(我什至出现 OutOfMemory 错误)。

还有其他人遇到过这样的问题吗? 谢谢 再见

最佳答案

MapDB需要遍历集合中的所有条目来进行计数。您可以将计数存储在外部 Atomic.Long 中并单独检索它,示例如下:

https://github.com/jankotek/MapDB/blob/master/src/test/java/examples/Map_Size_Counter.java

OOEM 不应该发生,这可能是由于 GC 开销断言造成的。

关于java - MapDB集合大小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15383716/

相关文章:

java - 如果我创建一个新对象并将其放入 main 方法中,java 会运行构造函数还是整个类?

使用多个 -Xmx 选项启动的 Java 守护进程 (hadoop)

c - 数组内存管理

ios - 无法使用类型为 '[[String : AnyObject]]' 的索引下标类型为 'String' 的值

python - ValueError:格式字符串中无法识别的字符 a

java - 向没有证书文件的苹果设备推送通知

ios - 在哪里以及如何__bridge

c++ - 将带有指针的 std 列表复制到另一个带有指针的 std 列表

python - 获取字典上存在特定键值对的列表

java - 如何使用 Spring Data REST 存储库创建和连接相关资源?