Объясните мелочи: сколько живых коллекций в типичной куче? - PullRequest
2 голосов
/ 02 февраля 2012

Я читаю презентацию «Построение Java-приложений с эффективным использованием памяти» и вижу, что на слайде 11 они задают вопрос: «Сколько живых коллекций в типичной куче?»

Ответ - от 10 тысяч до миллионов.

Я буду очень скромным и скажу, что не знаю, с чего бы начать с этого вопроса.

Что такое живая коллекция против "не живой коллекции"?Под коллекциями они подразумевают java.util.collections?

Коллекции живут в куче?Я полагаю, поскольку они не размещены в стеке, это оставляет только кучу.

Что подразумевается под откровением о том, что в куче живет от 10 000 до миллионов коллекций?Я могу только предположить, что это плохо.

Ответы [ 3 ]

2 голосов
/ 02 февраля 2012

Да, они относятся к java.util коллекциям. (Они касаются специфики каждого типа коллекции - HashSet, ArrayList и т. Д., Так что да.)

Коллекции действительно живут в куче, но как только они могут быть собраны сборщиком мусора - если на них не ссылается запущенное приложение - они не считаются "живыми".

Большое количество коллекций в куче - это не плохо, это всего лишь признак того, что коллекции используются так часто, чтобы гарантировать более внимательное рассмотрение реализаций коллекций и, в частности, их эффективности использования памяти. (Возможно, хорошо, что люди широко используют хорошие абстракции!)

Они почти наверняка не говорят только об одном приложении - я бы честно предположил, что они взяли ряд реальных приложений и провели анализ по ним.

0 голосов
/ 02 февраля 2012

Live означает, что есть еще ссылки на них.То есть - они не имеют права на сборку мусора.Поскольку презентация посвящена эффективности использования памяти, я предполагаю, что они имеют в виду, что коллекции (да, java.util.Set / List / Etc) обычно используются и что выбор правильного важен с точки зрения памяти.

0 голосов
/ 02 февраля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...