2013-06-12 2 views
1

Я разработал расширение Chrome, которое просматривает приблизительно 1500-2000 страниц, чтобы собирать информацию с веб-сайта и нажимать на мой собственный сервер. Я использую расширение Chrome, учитывая требования, которые намного проще настроить, чем создавать и анализировать на стороне сервера.Хром, заканчивающийся память

Расширение используется только для внутренних целей, и мы запускаем эту работу, используя chrome.alarm API, чтобы работать в 3 часа ночи каждый день. Этот сигнал тревоги, когда триггеры всплывает, открывает новую вкладку и проходит через 1500-2000 страниц. Проблема в том, что утром мы видим SNAP dialogue после того, как продление продолжилось около 1500 страниц (приблизительно 3/4). Я предполагаю, что это связано с тем, что спрос на Chrome, размещенный на Chrome, поддерживает такую ​​необычно большую историю?

Мой вопрос в том, что было бы лучшим способом смягчить это? Предположительно, убийство вкладки и повторное открытие (после x количество страниц) будут работать, но это замедлит подачу и потребует довольно много повторного факторинга кода. Есть ли способ заставить Chrome сбросить историю и сделать это свободной памятью в ближайшей сессии?

Чтобы добавить некоторый контекст, я запускаю это на дополнительной небольшой виртуальной машине с 1 ГБ памяти. Я ценю, что я мог бы модернизировать виртуальную машину, но на самом деле просто откладывает проблему.

ответ

1

Это трудно сделать твердую рекомендацию, не видя кода, но вот что-то немного более общее:

Проблема, скорее всего, информация, которая отсылается. Он продолжает накапливаться в памяти, пока вы не закончите. Возможно, вы захотите сохранить результаты в локальном хранилище, используя неограниченные возможности хранения Chrome. В файле манифеста:

"permissions": [ 
    "unlimitedStorage" 
], 

То, что я бы, вероятно, сделать это сохранить на локальном хранилище после каждой страницы, или что-то подобное, а затем сбросить массив (или что вы используете).

UPDATE

Если действительно история есть проблема, вы могли бы рассмотреть вопрос об исключении его на лету. Эта функция удалит записи для определенного URL:

https://developer.chrome.com/extensions/history.html#method-deleteUrl

+0

На каждом цикле страницы я использую только 8 LocalStorage переменные, которые переписываются каждый раз. Переменные хранят очень короткие пары ключей имени, поэтому объем памяти здесь будет очень небольшим. Я вполне уверен, что это накопленная история - это проблема. Представьте, что вы нажимаете кнопку «назад» 1500 раз, чтобы вытащить каждую историческую страницу из памяти. Я думаю, что я собираюсь перенастроить расширение, чтобы открыть новую вкладку и закрыть старую каждую n-ю страницу. Спасибо за указание unlimitedStorage, это новый на меня! – QFDev

+0

Это может сработать. Модифицировал мой ответ другим предложением. –

+0

Спасибо, я дам это! – QFDev

Смежные вопросы