Как ведет себя карта Chronicle, когда память вне кучи заполнена?

Я загружаю некоторые файлы и сохраняю их вне кучи, используя карту хроники в памяти. Я хотел понять поведение карты хроники, когда я превышаю объем доступной родной (вне кучи) памяти. У меня есть 2 вопроса по этому поводу:

  1. Сбрасываются ли данные на диск? Если нет, то что именно происходит? Если мы получим ошибку, как лучше всего избежать таких ошибок?
  2. Если мы не закроем карты хроники после того, как закончим их использовать (или если у нас возникнет утечка памяти), будет ли она продолжать заполнять память кучи? Приведет ли это к сбою JVM, когда память вне кучи будет заполнена, или ОС вмешается и очистит ее для нас?

person Sarthak Agarwal    schedule 15.04.2021    source источник


Ответы (1)


По сравнению с Hash Maps, Chronicle Maps может использовать сборку мусора гораздо эффективнее и имеет или реализует максимальный размер записи CM. С точки зрения сбора мусора это намного быстрее, чем Hash Maps. Я бы предложил взглянуть на следующее. https://dzone.com/articles/java-chroniclemap-part-1-go-off-heap

Что касается утечек памяти, я предположил, что когда дело дошло до Java, JVM обрабатывала память, а также избегала утечек памяти.

person Damien Hunter    schedule 28.04.2021
comment
Карты хроник могут использовать сборку мусора. Во-первых, он не использует сборку мусора, а затем вы знаете, что сборка мусора собирает только кучу, верно? - person Eugene; 01.05.2021
comment
для меня это новая концепция, возможно, эта статья могла бы дать больше информации baeldung.com/java-chronicle -карта - person nambastha; 01.05.2021
comment
Спасибо Евгений за разъяснения. Я должен был знать лучше. - person Damien Hunter; 02.05.2021