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

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

НЛО прилетело и опубликовало эту надпись здесь
Не знал про @Contended, спасибо. Ну там пишут, что это баг в HPROF dump, от багов никто не застрахован. Конечно, реальная жизнь всегда сложнее любых моделей, но иногда удаётся к ней в какой-то мере приблизиться :-)
НЛО прилетело и опубликовало эту надпись здесь
есть пару проектов, даже в центральном мавеновском хранилище, в названии присутствует «sizeOf». Присутствует в том числе и «глубокая» оценка объектов — с полным деревом ссылок, видимо, через рефлекшн делается.
> HashSet основан на HashMap, который устроен несколько хитрее.

Чем HashMap хитрее в плане устройства? У HashSet все так же, только от нас спрятано поле ключа, с ним работа идет без ведома пользователя.

А за статью спасибо, для углубленного представления о коллекциях само то, в избранное добавил.
Хитрее, чем TreeMap, описанный выше (в плане использования памяти хитрее). Видимо, не очень аккуратно сформулировал…
А что там хитрого. инфа 99% что память организована также как и у обычного массива — буффер, который увеличивается в 2 раза каждый раз, когда близок к заполнению.
Сори, это же описано в статье, по диагонали читал…
На минуточку, вы об организации на каком уровне говорите? если на уровне байт, то да что у массива. что у HashSet, что у TreeSet одно и то же устройство — область памяти. А если все же на уровне языковых структур, то массив далеко не так же устроен, как HashSet и TreeSet. У обычного массива, кстати память выделяется при создании и потом, не увеличивается по мере заполнения.
Конкретно не о Java, о стуктурном представлении сферических реализаций. Структура массив обычно реализовывают (судя по игровым движкам) как буффер, который таки увеличивается. И увеличивается абсолютно идентично буфферу HashMap, за тем лишь исключением, что Array буффер удваивает когда полностью забит, а HashMap, когда 75%, что нужно для того, чтобы стоимость вставки не скатывалась в o(n).
Да, не совсем удачно. Получилось из предложения, что HashMap устроен хитрее HashSet.
Хехе. Ну со всякими Integer-Float мы по совету умных людей на Trove перешли. Там действительно экономия памяти в 5-10 раз.
Спасибо за статью. Очень познавательно.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории