2013-03-13 1 views
0

Я использую MapDB 0.9-снимок. У меня есть коллекция, содержащая несколько миллионов записей String-> String. Моя проблема в том, что метод size() на таких ConcurrentMap (s) занимает много времени и много памяти (у меня даже ошибка OutOfMemory).MapDB коллекция размер выпуск

Любые другие опытные такие проблемы? Thanks Bye

ответ

2

MapDB необходимо переместить все записи в коллекциях, чтобы подсчитать их. Вы можете хранить кол-во внешних Atomic.Long и получить его отдельно, пример здесь:

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

OOEM не должно произойти, это, вероятно, из-за GC над головой утверждение.

+0

Большое спасибо Ян. Это работает. Тем не менее, довольно странно иметь его как внешний трюк. –