Greasy Fork is available in English.

RU AdList JS Fixes

try to take over the world!

< Feedback on RU AdList JS Fixes

مراجعة: OK - script works, but has bugs

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.

§
Posted: 07-06-2018

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

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

§
Posted: 09-06-2018

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

Lain inVerseمؤلف
§
Posted: 10-06-2018
Edited: 10-06-2018

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

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

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

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

Lain inVerseمؤلف
§
Posted: 13-06-2018
Edited: 13-06-2018

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

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

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

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

Lain inVerseمؤلف
§
Posted: 14-06-2018

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

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

Lain inVerseمؤلف
§
Posted: 15-06-2018

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

Lain inVerseمؤلف
§
Posted: 23-06-2018

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

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

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

Post reply

تسجيل الدخول إلى مرحلة ما بعد الرد.