Показать сообщение отдельно
  #4 (permalink)  
Старый 12.03.2010, 18:17
Интересующийся
Отправить личное сообщение для prike Посмотреть профиль Найти все сообщения от prike
 
Регистрация: 18.06.2009
Сообщений: 11

Kolyaj, e1f, спасибо за ссылки.

В итоге согласно первым двум ссылкам от e1f для Fire Fox есть возможности получить дамп памяти JavaScript и найти объекты оставшиеся в памяти после выгрузки страницы (т.е. утечки памяти), но это скорее для разработчиков плагинов или самого Fire Fox. Остальное, включая dynaTrace скорее повторяют функционал профилирования, доступный в FireBug, т.е. статистика времен вызова функций, статистика работы с сетью (загрузка объектов HTML, выполнения XMLHttpRequest и т.д.), хотя dynaTrace показывает это в более удобном виде и немного более шире чем FireBug.

К слову сказать для Internet Explorer утечки памяти актуальны только в версии 6, в 7 все объекты удаляются при выгрузке страницы, в 8-м заявлено что утечек нет. Для определения утечек памяти в IE есть специальная тулза от Microsoft: JavaScript Memory Leak Detector
Вот ссылки на эту тему:
http://blogs.msdn.com/gpde/pages/jav...tector_v2.aspx
http://blogs.msdn.com/gpde/pages/jav...-detector.aspx (если мне не изменяет память в этой статье должно объясняться откуда берутся утечки, но к сожалению в момент написания этого поста, сервер Microsoft был временно недоступен)

В итоге решить поставленную проблему - анализа памяти, точнее объектов JavaScript в памяти - помогла следующая тулза: JavaScript Memory Validator (http://www.softwareverify.com/javasc...ory/index.html). Это коммерческая тулза (доступна бесплатная полнофункциональная версия для ознакомления в течении 30 дней), которая отображает список объектов в памяти, выделает объекты число которых растет от поколения к поколению (т.е. после очередного сбора мусора), что может говорить потенциальных ошибках в коде из-за которых объекты во время не освобождаются, выделяет предположительно проблемные места (Hotspot) - объекты занимающие больше всего памяти, можно также посмотреть все события, читай - лог, выделения памяти и работы сборщика, график расхода памяти во времени. Правда есть одно два НО:
1) не работает для IE (хотя это не проблема т.к. скорее использование этой тулзы будет направлено на поиск логических ошибок из-за которых во время не происходит освобождение объектов JavaScript, а не на поиск жестких утечек памяти, для чего есть JavaScript Memory Leak Detector);
2) для Fire Fox работает до версии 3.0.2 включительно, т.е. на время тестирования придется ставить старую версию Fire Fox.

PS. Увы JavaScript Memory Validator не позволяет на ряду с объектами JavaScript понаблюдать за объектами DOM

Последний раз редактировалось prike, 12.03.2010 в 18:27.
Ответить с цитированием