Я использовал представление Временная шкала Chrome, чтобы попытаться отследить некоторую память утечки на моей странице. Я обнаружил одну конкретную утечку памяти в результате создания экземпляров веб-воркеров, от которой я не могу понять, как избавиться.
Я вырезал страницу, чтобы просто загрузить веб-воркера и больше ничего не делать. Каждый раз, когда я обновляю страницу, количество документов в представлении временной шкалы Chrome постоянно увеличивается на 1. Если я закомментирую вызов конструктора Worker и начну обновлять страницу, количество документов увеличивается, а затем уменьшается, фактически оставаясь неизменным. Завершение / закрытие воркера вручную не решает проблему (хотя я вижу, что воркер исчезает, когда смотрю на вкладку «Источники» в инструментах разработчика).
Вот мой урезанный файл .htm. Я могу воспроизвести проблему с помощью всего этого короткого фрагмента html / javascript:
<html>
<script type="text/javascript">
var worker_blob = new Blob(["var test = 1;"]);
var worker_url = window.URL.createObjectURL(worker_blob);
// Comment out the line below and the memory leak goes away
var worker = new Worker(worker_url);
window.URL.revokeObjectURL(worker_url);
</script>
</html>
1 ответ
Это утечка памяти в Chrome v25. Кажется, это исправлено в Chrome v26, так как проблема больше не может быть воспроизведена.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Имейте в виду, что JavaScript — это НЕ то же самое, что Java! Включите все ярлыки, относящиеся к вашему вопросу; например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [svelte] и т. д.
terminate
.