Greasy Fork is available in English.

RU AdList JS Fixes

try to take over the world!

< Commentaires sur RU AdList JS Fixes

Avis: OK - le script fonctionne, mais souffre de quelques problèmes

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.

§
Posté le: 2018-06-07

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

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

§
Posté le: 2018-06-09

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

Lain inVerseAuteur
§
Posté le: 2018-06-10
Édité le: 2018-06-10

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

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

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

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

Lain inVerseAuteur
§
Posté le: 2018-06-13
Édité le: 2018-06-13

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

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

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

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

Lain inVerseAuteur
§
Posté le: 2018-06-14

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

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

Lain inVerseAuteur
§
Posté le: 2018-06-15

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

Lain inVerseAuteur
§
Posté le: 2018-06-23

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

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

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

Poster une réponse

Connectez-vous pour poster une réponse.