Мой сайт довольно стандартный ecom-сайт, это не автономное приложение JS или что-то еще, это просто сайт, который использует JS для стандартных материалов, а также некоторые плагины jquery, чтобы сделать несколько вещей.
Я пытаюсь сделать оценку JS-памяти на своем сайте. Я сделал это, посмотрев диспетчер задач Chrome и с помощью снимков кучи.
Первоначально мой сайт при первом загрузке находится между 35 МБ (т.е. 35 000 КБ) и 40 МБ в диспетчере задач. Это самая большая из всех вкладок, если у меня одновременно есть несколько вкладок других сайтов. Если я верну его страницу до 55-60, другое обновление увидит, что оно переместится на 65-70 МБ.
На обычной странице в рабочем потоке она колеблется между 45-65 (иногда 75 в зависимости от того, что вы делаете). Щелчок вокруг и выполнение рабочего процесса со страницы на страницу видит, что память прыгает до 85-100 и увеличивается по мере того, как вы продолжаете работу с сайтом.
Я попытался сделать несколько вещей, например, проверить:
- деактивированные узлы
- снимки кучи и просмотр дельт
- amix MemoryLeakChecker проверяет размер объектов
Мне нужно более глубокое погружение, чтобы искать круговые ссылки или проблемы с закрытием.
Снимки кучи не отображают много, большинство верхних списков - это (массив), (строка), (система). Снимки располагаются между 4.8MB, 5.1MB, 5.8MB, 6.8MB и увеличиваются.
У меня есть несколько вопросов:
-
How do I understand the different metrics between snapshot memory and task manager memory
-
Are 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 мс?