Как измерить использование памяти и эффективность? - PullRequest
13 голосов
/ 19 сентября 2011

У меня есть веб-приложение, которое использует много JavaScript и предназначено для непрерывной работы (в течение дней / недель / месяцев) без перезагрузки страницы.

Однако Chrome падает через несколько часов. Safari не так часто падает, но значительно замедляется.

Как я могу проверить, есть ли проблемы с моим кодом или с самим браузером? И что я могу сделать, чтобы решить эти проблемы?

Ответы [ 2 ]

15 голосов
/ 19 сентября 2011

Используя Chrome Developer Profile Tools , вы можете получить снимок того, что использует ваш ЦП, и получить снимок памяти.

Сделайте 2 снимка.Выберите этот первый и переключитесь на сравнение, как показано ниже

enter image description here

Треугольный столбец - это математическая дельта или изменение математического символа.Так что, если ваши дельты положительны, вы создаете больше объектов в памяти.После этого я бы сделал еще один снимок, скажем, через 5 минут.Затем сравните результаты еще раз.Глядя на delta

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

Если ваши дельты продолжают увеличиваться, у вас, вероятно, есть утечка памяти.

Также,

document.getElementsByTagName('*'); // a count of all DOM elements

было бы полезно узнать, неуклонно ли вы увеличиваете свои DOM-элементы.

1 голос
/ 19 сентября 2011

В Chrome также есть страница "about: memory", но я согласен с IAbstractDownVoteFactory - инструменты для разработчиков - это путь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...