Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Утечки памяти в ExtJS (https://javascript.ru/forum/extjs/62135-utechki-pamyati-v-extjs.html)

alexey91 26.03.2016 07:45

Утечки памяти в ExtJS
 
Всем привет!

Работаю с библиотекой ExtJS версии 4.

У меня возник вопрос по утечкам памяти. 100% Уверенности в том, что течет именно ExtJS у меня нет. Я использую профилировщик от хрома и вижу несколько detached деревьев размером по 2000-3000 элементов, но суммарный размер retained size всех деревьев не превышает и 10 мегабайт, однако открыв диспетчер задач, я вижу, что хром отожрал уже несколько сотен мегабайт и уменьшения объема со временем не происходит.

Элементы из этих деревьев ссылаются в конечном счете на сущности Ext: ComponentManager, WindowManager, Cache. Это приводит меня к выводу, что течет ExtJS. Происходит ли это из-за внутренностей ExtJS или его неправильного использования я пока сказать не могу.

С другой стороны, когда я делаю тестовые примерчики для создания утечек и добавляю тяжеловесные свойства к DOM элементу, к примеру, new Array(100000).join('test'), то я вижу, что размер retained size детаченого дерева в профилировщике примерно равен памяти процесса браузера.

Отсюда у меня вопрос, если считать, что утечки ExtJS ведут к отжиранию памяти, то почему я не вижу, что размер дерева равен количеству памяти у процесса?

Возможно, в процессе дискуссии вопрос будет переформулирован по-другому, но пока вопрос такой :)

nohuhu 28.03.2016 21:02

Утечки были, есть и будут. В 4.x их было много, в 5.x ОЧЕНЬ много, к 6.0 я вычистил всё, что успел найти до релиза. Изменений было так много, что портировать этот фикс на старые версии нереально.

Поэтому попробуйте сперва апгрейд до 6.x, если продолжит течь то давайте конкретные примеры.


Часовой пояс GMT +3, время: 20:25.