IdentityHashMap имеет один параметр настройки под названием expectedMaxSize, который напрямую влияет на производительность. Этот параметр указывает предполагаемое максимальное количество пар ключ-значение, которые будут храниться в мапе, и это определяет начальное количество бакетов в хеш-таблице.
Параметр expectedMaxSize влияет на начальный размер таблицы бакетов, хотя точное соотношение формально не определено. Когда фактическое количество записей превышает ожидаемый максимальный размер, хеш-таблица проходит через рехеширование — процесс, который увеличивает ёмкость таблицы и может быть вычислительно дорогим.
При выборе значения expectedMaxSize есть два конкурирующих соображения:
Чтобы оптимизировать производительность IdentityHashMap:
expectedMaxSize, чтобы минимизировать рехешированиеГлавное — тщательно откалибровать expectedMaxSize под ожидаемый объём данных твоего приложения, принимая во внимание, чего в твоём сценарии больше: вставок или итераций.
Параметр expectedMaxSize в IdentityHashMap определяет начальное выделение бакетов, и если установить его слишком низким, это вызовет дорогостоящие операции rehashing'а, которые снижают производительность вставок.
Новый — ещё не проверен сообществом
Вы