Как стать автором
Обновить

Комментарии 7

Спасибо автору за интересную статью! раньше даже не знал, что существует отдельная библиотека для оптимизированных коллекций. Возник вопроc: если ли смысл использовать эти коллекции повсеместно, где это возможно, и будет ли от этого ощутимая разница в производительности?

Если это классическая прилка в стиле "получить список данных из инета, пропустить его через всякие фильтры и тд, а затем отобразить" наверно особо нет, но для сложных алгоритмов где колоссальное количество коллекций есть: это сократит в десятки раз обьем используемой ОЗУ

Насчет десятков раз можно поподробнее? Что-то я сомневаюсь.

Сравнение простое:

1) HashSet и HashMap создают минимум в два раза больше обьектов чем ScatterSet и ScatterMap, так как ключ и значение содержится в Map.Entry, а это дополнительный обьект

2) HashMap<String, Float> создаст еще и обертку над примитивным типом в отличии от objectFloatMapOf()

3) Отсюда следует, что при большом количестве коллекций, особенно если это примитивные, можно достигнуть сокращение памяти в десятки раз

P.S. Согласен, что надо бы сделать замеры, чтобы наверняка быть уверенным, возможно добавлю...

Сами посчитайте ваш случай - я в упор не вижу десятков раз. Ну в 2-3 раза.

Интересно, но жаль, что нет тестов или просто выводов из других источников по памяти/времени - насколько эти коллекции лучше стандартных.

Насчет тестов хорошая идея, возможно сделаю...

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации