Карта хроники с использованием примитивов - PullRequest
0 голосов
/ 15 мая 2018

В Chronicle-map описании сказано:

Chronicle Map обеспечивает скорость доступа в оперативную память и поддерживает сверхнизкую сборку мусора. Chronicle Map может поддерживать самые требовательные приложения.

Что поддерживает сверхнизкий сбор мусора на самом деле означает? Означает ли это, что карта Хроники пытается выделить как можно меньше объектов в куче?

Насколько я знаю, проекты с низкими требованиями к задержке стараются избегать ненужных распределений, частично с помощью коллекций без gc, частично с помощью пула объектов. Одним из них является избегание ненужного бокса / распаковки примитивов Например, если у вас есть Map<Long, Entity>, чтобы избежать создания Long объектов, вы можете использовать реализации карт, основанные на типах значений, например TLongObjectMap<Value> в библиотеке trove.

Тогда имеет смысл создать такой экземпляр chronicle-map, например, используя примитивы в качестве ключей. Является ли это возможным? Если нет, то есть ли причины не реализовывать это?

1 Ответ

0 голосов
/ 15 мая 2018

Да, это возможно для использования ChronicleMap без единого выделения (т. Е. Мусора) на горячем пути.Если у вас есть примитивные ключи (или значения), вы должны использовать шаблон веса, облегченный библиотекой Chronicle Values ​​.См. Значение интерфейсов вместо штучных примитивов в руководстве.

...