В моем Java-коде я использую Multimap Guava ( com.google.common.collect.Multimap), используя это:
Multimap Index = HashMultimap.create()
Вот, Multimap ключ — это некоторая часть URL-адреса, а значение — это другая часть URL-адреса (преобразованная в целое число). Теперь я назначаю своей JVM 2560 МБ (2,5 ГБ) пространства кучи (используя Xmx и Xms). Однако он может хранить только 9 миллионов таких пар (ключ, значение) целых чисел (около 10 миллионов). Но теоретически (согласно памяти, занимаемой int
) он должен хранить больше.
Кто-нибудь может мне помочь,
Multimap
использует много памяти? Я проверил свой код, и без вставки пар в Multimap
он использует только 1/2 МБ памяти. Есть ли другой способ или самодельное решение для решения этой проблемы с памятью? Значит, есть ли способ уменьшить эти накладные расходы на объекты, поскольку я хочу хранить только int-int? На любом другом языке? Или любое другое решение (предпочтительно домашнее) для решения проблемы, с которой я столкнулся, означает решение на основе БД или что-то в этом роде.