Проблемы с памятью и утечками в Javascript

Мой сайт - это довольно обычный ecom-сайт, это не отдельное приложение с поддержкой JS или что-то еще, это просто сайт, который использует JS для стандартных вещей, а также некоторые плагины jquery для некоторых вещей.

Я пытаюсь сделать некоторую оценку памяти JS на моем сайте. Я сделал это, посмотрев на диспетчер задач Chrome и снимки кучи.

Изначально мой сайт при первой загрузке находился между 35 МБ (т.е. 35 000 КБ) и 40 МБ в диспетчере задач. Это самая большая вкладка из всех, если у меня одновременно открыто несколько вкладок других сайтов. Если я обновлю страницу, она скачет до 55-60, другое обновление увидит, что она скачет до 65-70 МБ.

На обычной странице в рабочем процессе она колеблется между 45-65 (иногда 75 в зависимости от того, что вы делаете). Перемещение по рабочему процессу от страницы к странице приводит к тому, что объем памяти увеличивается до 85-100 и увеличивается по мере продвижения по сайту.

Я попытался сделать несколько вещей, таких как проверка для:

отдельные узлыкуча снимков и глядя на дельтыMemoryLeakChecker от amix, проверяющий размер объектов

Мне нужно более глубокое погружение, чтобы искать циклические ссылки или проблемы с закрытием.

Снимки кучи не показывают много, большинство главных списков (массив), (строка), (система). Снимки находятся между 4,8 МБ, 5,1 МБ, 5,8 МБ, 6,8 МБ и увеличиваются.

В результате у меня есть несколько вопросов:

How do I understand the different metrics between snapshot memory and task manager memoryAre there any good tutorials (apart from the ones on the Google Developers site)?How much memory is considered acceptable? Given in the task manager my site is always the highest?Do I have a memory leak? Apart from the steps I've described above (which I haven't found anything concrete from) is there any other ways I can find leaks?Can you suggest any tools apart from the Chrome Dev Tools (a lot of the tools mentioned on Google for Firefox are not compatible with the latest version, eg: Leak Monitor for FF)

В качестве примечания, большинство моих функций являются операциями со сдержанными клавишами и не превышают 200 мс (в зависимости от профиля процессора). К какому хорошему ориентиру я должен стремиться? Это 200 мс?

Ответы на вопрос(2)

Ваш ответ на вопрос