|
|
|
Создание переменной или переиспользование.
|
|||
|---|---|---|---|
|
#18+
Добрый день! Читаю рекомендации к хадупу , п.6. Там рекомендуется не создавать в цикле объект, а переиспользовать существующий. С одной стороны- им виднее, с другой- совету 4 года и, насколько я помню, сейчас Оракл рекомендует именно создавать короткоживующие переменные. Актуален ли этот совет теперь? Или он устарел? Если устарел, то с какой версии JDK? -- Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 11:28 |
|
||
|
Создание переменной или переиспользование.
|
|||
|---|---|---|---|
|
#18+
Вы сильно путаете переменные и объекты. Надо бы различать. Всё дело в количестве. Пример по ссылке показывает где вы на ровном месте можете создать тысячи экземпляров. И помимо использования памяти это ещё и многократное выполнение конструкторов. Там же в "Benchmarks" написано, что если у вас куча здоровая то разницы особой нет. То есть куча должна быть достаточно большой. Young поколение должно быть достаточно большим чтобы уместить все временные экземпляры. Тогда и разницы никакой не будет. А вот если куча не большая, если масса объектов не влазит в Young и оседает в Tenured, и самое стремное, если при этом запустится GC, когда все эти экземпляры ещё нужны. Тогда возможны проседания в производительности. Рекомендации Oracle носят общий характер. Не нужно что-то усложнять пытаясь переиспользовать объекты до тех пор пока от этого не будет очевидной выгоды. А когда у вас выбор между тем создать ли один экземпляр, или 100500, то выгода очевидна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 11:44 |
|
||
|
Создание переменной или переиспользование.
|
|||
|---|---|---|---|
|
#18+
BlazkowiczВы сильно путаете переменные и объекты. Надо бы различать. Да, не так выразился. BlazkowiczВсё дело в количестве. Пример по ссылке показывает где вы на ровном месте можете создать тысячи экземпляров. Они и так создаются. Сначала String, потом из него- ихний объект Text, который, по сути, содержит в себе ссылку на буфер да его длину. Т.е. вопрос в том, создадим ли мы 100500 объектов на 100Мб, или 201000 на 101Мб :) BlazkowiczРекомендации Oracle носят общий характер. Не нужно что-то усложнять пытаясь переиспользовать объекты до тех пор пока от этого не будет очевидной выгоды. А когда у вас выбор между тем создать ли один экземпляр, или 100500, то выгода очевидна. Проблема в том, что каждый запуск - это день в лучшем случае :) И когда оно падает (причём иногда всё сразу, со всеми потрохами), или просто за день не укладывается, то раскопать, в чём дело- непросто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 12:07 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=176&tid=2127255]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 395ms |

| 0 / 0 |
