RU AdList JS Fixes

try to take over the world!

< Відгуки до RU AdList JS Fixes

Відгук: OK - script works, but has bugs

§
Опубліковано: 07.06.2018

Memory Leak

Latest Chrome (67.0.3396.79), Tampermonkey 4.6.

This script causes memory leak, Chrome's Task Manager shows that the Tampermonkey extension consumes over 100 MB of memory.

§
Опубліковано: 07.06.2018

На страницах каких ресурсов это происходит? При обычном использовании я наблюдаю чуть больше 50mb.

§
Опубліковано: 08.06.2018

Сложно сказать. Открыт обычно Гугл, ВК, StackOverflow, Яндекс.

§
Опубліковано: 09.06.2018

Попробуйте выявить, на каком сайте можно стабильно воспроизвести проблему.

Lain inVerseАвтор
§
Опубліковано: 10.06.2018
Edited: 10.06.2018

На сколько я знаю мой скрипт, как и множество других, работают в контексте страницы и не должны влиять на объём, занимаемый Tampermonkey. Впрочем, можно попробовать разобраться. Попробуйте на открытых страницах открыть инспетктор страницы Ctrl+Shift+I или F12, перейти на вкладку Memory, нажать там Take Snapshot и Save. Результат в архив и на гугло-диск или яндекс-диск, а ссылку сюда. Я попробую разобраться есть ли там мой косяк. Желательно выключить другие расширения / скрипты и желательно сократить количество анализируемых страниц до минимума.

Кстати, скорее всего это Яндекс, если это вообще вина скрипта.

§
Опубліковано: 13.06.2018

Добрый день! Записал снэпшот, пока на паре страниц - Яндекс и Яндекс.Погода. Отключены все расширения, кроме uBlock Origin и Tampermonkey.

https://drive.google.com/open?id=1EONTiusVaAUR3HwMU8UVFf-LjW8Y-T1A

Lain inVerseАвтор
§
Опубліковано: 13.06.2018
Edited: 13.06.2018

Не помогло. Впрочем, получилось воспроизвести самому и посмотреть на память самого расширения.

Если я правильно понимаю, то дело не столько в моём скрипте, сколько в его размере. Tampermonkey не только хранит его в памяти целиком, но ещё и генерирует множество копий, разбитых в блоки по 32Кб. Аналогичное поведение можно заметить установив какой-нибудь другой огромный скрипт вроде этого: https://greasyfork.org/en/scripts/37654-popup-blocker-script Попробуйте выключить/удалить мой скрипт и установить указанный выше. Должно даже больше занять. А если оба сразу, то TM легко раздувается до 150 Мб+ при нескольких вкладках Яндекса или нескольких обновлениях страницы подряд.

Зачем он так делает для меня загадка, но я этим процессом из своего кода управлять никак не могу. Впрочем, это и не утечка памяти так-как если вкладки того же Яндекса закрыть, то со временем ранее занятая этими копиями память в расширении высвобождается так-как ссылок на эти строки больше не остаётся и их удаляет сборщик мусора.

§
Опубліковано: 14.06.2018

Всё понятно, спасибо! Перевключение расширения действительно помогает - память освобождается. Может быть, написать автору TamperMonkey?

Lain inVerseАвтор
§
Опубліковано: 14.06.2018

Написал автору письмо так-как форум на данный момент закрыт. Посмотрим ответит ли.

§
Опубліковано: 15.06.2018

@"Lain inVerse" said: Написал автору письмо Спасибо!

Lain inVerseАвтор
§
Опубліковано: 15.06.2018

До сих пор не ответил. Будем дальше посмотреть.

Lain inVerseАвтор
§
Опубліковано: 23.06.2018

Автор ответил, что провёл некоторые оптимизации кода и теперь расширение должно потреблять меньше памяти:

http://tampermonkey.net/changelog.php?version=4.7.5798&ext=gcal

Правда почему код оказывается порезан на блоки по 32 Кб он сам пока не в курсе. Похоже это какие-то фокусы самого JS.

Опублікувати відповідь

Sign in to post a reply.