Size: a a a

2020 December 25

ES

Eugene Svalukhin in Astana JKUG
N+im+n
+ GC потом дочистит
На GC надейся, а сам не плошай
источник

ES

Eugene Svalukhin in Astana JKUG
Если у него очень много объектов в листах хранится и они часто создаются то может быть оверхед по потребляемой памяти
источник

M

MrKnyaz in Astana JKUG
Eugene Svalukhin
Если у него очень много объектов в листах хранится и они часто создаются то может быть оверхед по потребляемой памяти
Ну мы говорим что clear() за О(1) это то же самое что и пересоздание листа
источник

M

MrKnyaz in Astana JKUG
Может не зря там за O(N) сделано
источник

M

MrKnyaz in Astana JKUG
Не заглядывал в реализацию
источник

ББ

Бауыржан Бейсекеев... in Astana JKUG
Eugene Svalukhin
Если у него очень много объектов в листах хранится и они часто создаются то может быть оверхед по потребляемой памяти
когда используешь clear он не отпускает память занятую списком, наверно лучше пересоздать
источник

ББ

Бауыржан Бейсекеев... in Astana JKUG
по части оптимизации по памяти так лучше ведб
источник

N

N+im+n in Astana JKUG
Eugene Svalukhin
Если у него очень много объектов в листах хранится и они часто создаются то может быть оверхед по потребляемой памяти
ArrayList например может однажды разрастись, заняв память, и если его не пересоздать - тоже плохо.

можно комбинированный подход сделать,
если размер листа меньше 100, то clear, иначе пересоздаем.
источник

M

MrKnyaz in Astana JKUG
Как понять разрастись? После clear он уменьшится
источник

M

MrKnyaz in Astana JKUG
До базового значения
источник

ББ

Бауыржан Бейсекеев... in Astana JKUG
Timur Nurmagambetov
народ есть библиотека коллекций где clear() выполняется за О(1), а не О(n)?
там для arraylist, hashset какихнибудь
а впоследствии что будет присходить с этим списком? будет записываться примерно такое же количество обьектов?
источник

M

MrKnyaz in Astana JKUG
Бауыржан Бейсекеев
когда используешь clear он не отпускает память занятую списком, наверно лучше пересоздать
Тоже не понятно, какая разница, ArrayList занимает какую-то базовую память. То что вы clear сделаете или новый создадите, эффект один будет
источник

ББ

Бауыржан Бейсекеев... in Astana JKUG
MrKnyaz
Тоже не понятно, какая разница, ArrayList занимает какую-то базовую память. То что вы clear сделаете или новый создадите, эффект один будет
не совсем, при clear память не освобождается, а при пересоздании курсор перекидывается на свободную область в памяти а старый кусок чистится gc
источник

N

N+im+n in Astana JKUG
MrKnyaz
Как понять разрастись? После clear он уменьшится
clear просто зануляет
источник

M

MrKnyaz in Astana JKUG
А точно, глянул сорс
источник

N

N+im+n in Astana JKUG
MrKnyaz
До базового значения
нужно делать trimToSize, то это как пересоздание
источник

M

MrKnyaz in Astana JKUG
Странное решение от создателей если честно
источник

ББ

Бауыржан Бейсекеев... in Astana JKUG
MrKnyaz
Странное решение от создателей если честно
предоставляют право выбора, хоть какую то иллюзию контроля, все по лучшим традициям идеологии западной демократии
источник

M

MrKnyaz in Astana JKUG
Оставляли бы если бы была версия clear которая бы не зануляла а сразу пересоздавала массив внутренний
источник

M

MrKnyaz in Astana JKUG
По сути 3 метода должно быть clear() за N, trimToSize, и какой нибудь annihilate() который бы делал два предыдущих действия но только за O(1)
источник