Утечка памяти в Mozilla при выгрузке таблиц стилей - PullRequest
1 голос
/ 03 мая 2010

Я работаю с Mozilla v1.7.12 на ограниченном устройстве (приставке Motorola), пытаясь устранить некоторые утечки памяти.

Когда я динамически загружаю таблицу стилей, которая ссылается на некоторые большие изображения, я вижу, что объем потребляемой памяти увеличивается в соответствии с размером изображений. Это то, что я ожидал.

Затем, когда я удаляю таблицу стилей из DOM, я ожидаю освобождения памяти. Однако этого не происходит.

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

Поэтому мой вопрос таков: я вижу ожидаемое поведение или это известная ошибка? Есть ли способ обойти это?

Следует отметить, что я установил заголовок expires на -1 для всех изображений в таблице стилей.

[Update]

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

1 Ответ

0 голосов
/ 03 мая 2010

Является ли это ошибкой или нет, это очень субъективный вопрос. Браузер использует память, когда ему это нужно, и в лучшем случае отказывается, когда ему это больше не нужно. Он может никогда не освободить память, потому что более эффективно удерживать ее для повторного использования, чем продолжать отказываться от нее и запрашивать ее.

Короче говоря, второе предположение, почему или когда какая-либо программа потребляет и освобождает память или нет, часто является безнадежным делом (если, конечно, это не ваш код).

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

...