0

MapDB 0.9-snapshot を使用しています。数百万のレコード String->String を含むコレクションがあります。私の問題は、そのような ConcurrentMap(s) のメソッド size() が多くの時間と大量のメモリを消費することです (OutOfMemory エラーさえあります)。

他にそのような問題を経験した人はいますか?ありがとさよなら

4

1 に答える 1

2

MapDBは、コレクション内のすべてのエントリをトラバースしてカウントする必要があります。countを外部のAtomic.Longに保存し、個別に取得できます。例は次のとおりです。

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

OOEMは発生しないはずです。これは、GCオーバーヘッドアサーションが原因である可能性があります。

于 2013-03-13T17:32:05.153 に答える