Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
MAXUS значит я плохо знаком в js'ом, я всегда думал что когда завершается функция leak то showStack очищается и больше не доступен.
Хотя из функции showStack мы имеем доступ к stack, поэтому память не совсем утекла, с неё можно ещё работать. (Добавление)
Хотя... после прогрузки страницы память выдедилась под ноды и на протяжении всего скрипта не удаляется (ждёт вызова showStack) что тоже немного странно. По-моему в данном случае showStack не должна быть доступна снаружи leak иначе это и правда беда.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
MAXUS
Отправлено: 06 Февраля, 2014 - 12:40:40
Посетитель
Покинул форум
Сообщений всего: 329
Дата рег-ции: Апр. 2011
Помог: 7 раз(а)
nerv пишет:
еще ссылка
http://learn[dot]javascript[dot]ru/memory-leaks
Кстати, поизучав вопрос утечек в jq пришел к выводу, что в этом смысле опасно мешать его с нативным кодом. Например, любая навеска события через jq череповата боком, если мешать jq и нативный js.
Соответственно, опасно мешать jq с другими фреймворками, которые работают с js напрямую. Во всяком случае, надо точно знать как работают оба и не давать им пересекаться в таком ключе.
(Добавление)
OrmaJever пишет:
Хотя... после прогрузки страницы память выдедилась под ноды и на протяжении всего скрипта не удаляется (ждёт вызова showStack) что тоже немного странно. По-моему в данном случае showStack не должна быть доступна снаружи leak иначе это и правда беда.
Дак в этом как раз смысл замыкания. Функция отрабатывает, но если на ее область видимости остаются ссылки, то эта область видимости сохраняется, пока эти ссылки не будут разорваны.
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
MAXUS пишет:
Функция отрабатывает, но если на ее область видимости остаются ссылки, то эта область видимости сохраняется, пока эти ссылки не будут разорваны.
Вот именно, область видимости! Почему когда завершается функция leak остаётся переменная showStack? Ведь она создана именно а функции и должна умереть вместе с ней.
По-моему так быть не должно
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
IllusionMH
Отправлено: 06 Февраля, 2014 - 13:00:44
Активный участник
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011 Откуда: .kh.ua
Помог: 242 раз(а)
OrmaJever, функция ж присваивается глобальной переменной, а значит она и ее область видимости живут, пока ее не удалить/заменить.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.