Очистить вкладку браузера об использовании RAM от / для Tampermonkey?

Я ищу решение для внедренного javascript с Tampermonkey для Chrome, где каждая перезагрузка страницы очищает использование ОЗУ, а не увеличивает его.

Я тестирую внедренные скрипты с помощью Chrome Developer Tools-> Timeline. Каждый раз, когда я перезагружаю страницу, использование оперативной памяти увеличивается.

Мой javascript включает несколько вызовов jQuery AJAX и несколько строк кода.

Я пробовал все возможные функции перезагрузки javascript, но ни одна из них не дала мне желаемого результата.

Так что, если у кого-то есть идеи, как это решить, я был бы очень благодарен.


person user420589    schedule 11.12.2012    source источник


Ответы (2)


Обновление:
Устранена утечка памяти. в Tampermonkey, из-за которого некоторые данные оставались в памяти даже после перезагрузки страницы. Так что, возможно, ваша проблема теперь решена.



Выберите другую вкладку и подождите несколько секунд. Другого способа запустить сборку мусора нет.

Возможно, вы сможете использовать эту магию, чтобы имитировать полную перезагрузку:

// ==UserScript==
// @name       fake reload
// @namespace  http://use.i.E.your.homepage/
// @version    0.1
// @description  enter something useful
// @match      http://tampermonkey.net/empty.html
// @copyright  2012+, You
// ==/UserScript==

function fake_reload() {
    console.log("...now");
    GM_openInTab(window.location.href, {active: false, insert: true});
    // close the current window some ms later to allow the insert magic to detect this' tab position
    window.setTimeout(window.close, 1);
}
window.setTimeout(fake_reload, 3000);
console.log("run 'fake reload'...");
person derjanb    schedule 11.12.2012
comment
Замечательно, что вы исправили утечку памяти (+1) в собственном коде. Но часть этого ответа содержит неверную информацию (-1; см. Ответ, на который я ссылаюсь). Не уверен, что мне тоже нравится идея мерцающих вкладок. - person Brock Adams; 23.04.2013
comment
Кроме того, измените свой веб-сайт так, чтобы прямые ссылки на изменения, на которые вы ссылаетесь, открывали страницу, на которой уже было показано это изменение, и прокручивались до нее. - person Brock Adams; 23.04.2013

Вероятно, у вас есть утечка памяти в коде скрипта. См. этот ответ для идей по устранению таких утечек.

Обычно вы не можете очистить оперативную память из javascript по замыслу. Но если вы серьезно относитесь к поиску и устранению утечек памяти в пользовательском скрипте (и, возможно, на целевой странице), вы можете получить / создать отладочную версию Chrome, а затем просмотреть этот ответ о том, как разрешить JavaScript для принудительной сборки мусора.

person Brock Adams    schedule 12.12.2012