Как заставить Firefox (Версия 6) освободить память? - PullRequest
4 голосов
/ 23 августа 2011

Я работаю над веб-приложением, похожим на слайд-шоу, в котором текущее изображение рисуется на холсте, и вы можете пролистывать изображения с помощью кнопок «следующий / предыдущий».Изображения загружаются с someImage.src и по соображениям производительности я делаю это в фоновом режиме, пока пользователь просматривает первое изображение.Firefox выделяет много памяти во время этой предварительной загрузки (в 20-30 раз больше, чем в Chrome или Safari и даже в два раза больше, чем в IE).Более того, если я изменю слайд-шоу, что я могу сделать, загрузив XML-описание слайд-шоу в фоновом режиме (с раскрывающимся меню) , а URL-адрес веб-сайта остается прежним , нет памятиосвобождается, но много нового выделяется.Нет, пока я не изменю или не обновлю URL-адрес веб-сайта. Firefox освобождает память.Это поведение отличается от всех других браузеров.

Что там происходит?Почему Firefox так голоден?Есть идеи, как это исправить?Есть ли способ заставить Firefox освободить память или уменьшить объем памяти, которую он использует для предварительного кэширования загруженных (но не показанных) изображений?

Ответы [ 2 ]

5 голосов
/ 23 августа 2011

Даже если иногда кажется, что firefox выделяет все больше и больше памяти, это может быть обманчиво.Сборщик мусора в Firefox работает несколько странно (для меня).Не удивительно, что Firefox решает освободить огромную часть памяти за 2-8 минут.Вероятно, стоит заглянуть в исходный код.

Однако вы можете ускорить процесс, используя null некоторые ваши переменные / ссылки, так что сборщик мусора сможет обнаружить чуть раньшеот чего следует отказаться.Это особенно хорошая идея с элементами / ссылками холста.Таким образом, простая установка не более используемых / нужных переменных

myCanvasRef = null;

должна помочь вам.Если вы все еще думаете, что Firefox использует слишком много памяти, откройте новую вкладку и введите about: memory .Это даст вам подробное представление о текущем использовании памяти браузера.Например, вы можете увидеть, используется ли эта память для кода Javascript, изображений или другого материала, который очень полезен для удержания плохих парней.

1 голос
/ 13 мая 2016

Если вы пришли сюда в поисках «как заставить GC в Firefox» одним из способов перейти к: памяти, затем нажмите кнопку «gc».

К сожалению, это, похоже, не очень помогло в моемчастный случай, но в случае, если это полезно для последователей, есть это. ссылка

...