powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Создание переменной или переиспользование.
3 сообщений из 3, страница 1 из 1
Создание переменной или переиспользование.
    #38629912
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Читаю рекомендации к хадупу , п.6.

Там рекомендуется не создавать в цикле объект, а переиспользовать существующий.

С одной стороны- им виднее, с другой- совету 4 года и, насколько я помню, сейчас Оракл рекомендует именно создавать короткоживующие переменные.

Актуален ли этот совет теперь? Или он устарел? Если устарел, то с какой версии JDK?

--
Алексей.
...
Рейтинг: 0 / 0
Создание переменной или переиспользование.
    #38629940
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы сильно путаете переменные и объекты. Надо бы различать.
Всё дело в количестве. Пример по ссылке показывает где вы на ровном месте можете создать тысячи экземпляров. И помимо использования памяти это ещё и многократное выполнение конструкторов.
Там же в "Benchmarks" написано, что если у вас куча здоровая то разницы особой нет.
То есть куча должна быть достаточно большой. Young поколение должно быть достаточно большим чтобы уместить все временные экземпляры. Тогда и разницы никакой не будет.

А вот если куча не большая, если масса объектов не влазит в Young и оседает в Tenured, и самое стремное, если при этом запустится GC, когда все эти экземпляры ещё нужны. Тогда возможны проседания в производительности.

Рекомендации Oracle носят общий характер. Не нужно что-то усложнять пытаясь переиспользовать объекты до тех пор пока от этого не будет очевидной выгоды. А когда у вас выбор между тем создать ли один экземпляр, или 100500, то выгода очевидна.
...
Рейтинг: 0 / 0
Создание переменной или переиспользование.
    #38629972
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczВы сильно путаете переменные и объекты. Надо бы различать.

Да, не так выразился.

BlazkowiczВсё дело в количестве. Пример по ссылке показывает где вы на ровном месте можете создать тысячи экземпляров.

Они и так создаются. Сначала String, потом из него- ихний объект Text, который, по сути, содержит в себе ссылку на буфер да его длину. Т.е. вопрос в том, создадим ли мы 100500 объектов на 100Мб, или 201000 на 101Мб :)

BlazkowiczРекомендации Oracle носят общий характер. Не нужно что-то усложнять пытаясь переиспользовать объекты до тех пор пока от этого не будет очевидной выгоды. А когда у вас выбор между тем создать ли один экземпляр, или 100500, то выгода очевидна.

Проблема в том, что каждый запуск - это день в лучшем случае :)
И когда оно падает (причём иногда всё сразу, со всеми потрохами), или просто за день не укладывается, то раскопать, в чём дело- непросто.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Создание переменной или переиспользование.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]