Временная шкала Chrome Dev Tool говорит, что у меня есть осиротевшие узлы DOM

Я создаю одностраничное приложение в Backbone.js, предназначенное для масштабирования до 10 000 фотографий. Я пытаюсь проверить ограничения Chrome и посмотреть, столкнусь ли я с этой ошибкой webkit:

Неограниченный рост памяти при добавлении и удалении изображений

Я загружаю JPG в дерево DOM, используя и instanceof Backbone.View в дерево DOM, и вызываю следующее для удаления:

// myThmbnailView instanceof Backbone.View
myThumbnailView.undelegateEvents();
myThumbnailView.remove();

ThumbnailView не имеет объявленных обработчиков событий, все делегируется родителю, GalleryView.

Согласно временной шкале в ChromeDevTools, у меня есть 1000 узлов DOM на моей странице (каждый элемент ThumbnailView содержит 20 элементов DOM), но они не освобождаются, когда я перебираю миниатюры и удаляю их. Вот снимок

Снимок временной шкалы

Последний вызов $("body").children().remove() для удаления всех элементов DOM со страницы по-прежнему оставляет мне 18 000 узлов DOM в соответствии с временной шкалой. Тем не менее, GC, похоже, освобождает значительную часть памяти.

У меня есть осиротевшие узлы или это ошибка временной шкалы? Я неправильно подхожу к этой проблеме?


person michael    schedule 07.11.2013    source источник
comment
сколько элементов в объекте $.cache? его очистка ничего не меняет?   -  person Kevin B    schedule 08.11.2013
comment
Я сделал еще один запуск и нашел 7 ключей для запуска выше и 2 ключа после того, как я вызвал $(body).children().remove() Что такое $.cache, я не видел никаких документов по нему?   -  person michael    schedule 08.11.2013
comment
Я улучшил свой тестовый сценарий и, кажется, могу выполнить более 50 циклов загрузки/удаления 3500 файлов JPG без сбоя браузера. Но DevTools Tmmeline никогда не опускается ниже 70 000 узлов DOM после удаления JPG — и иногда происходит сбой.   -  person michael    schedule 12.11.2013
comment
Вы когда-нибудь находили ответ на этот вопрос? Я испытываю нечто подобное с моим приложением. Это достигает около 80-100 тысяч узлов. Я начал проводить простые тесты, но не понял, ошибка это или настоящие потерянные узлы? stackoverflow.com/questions/21240709/   -  person Senica Gonzalez    schedule 20.01.2014
comment
Нет. Но я запускал его часами, и хотя ChromeDevTools иногда давал сбой, сеанс браузера случался редко. Так что я надеюсь, что это просто ошибка временной шкалы   -  person michael    schedule 22.01.2014