Как отследить причины использования ЦП ≥100% в Firefox (на рабочем столе)?

2753
Sarge Borsch

Некоторые сайты заставляют Firefox постоянно использовать 100% CPU. Конечно, некоторые из них я могу просто заблокировать и никогда не посещать, но некоторые, к сожалению, мне иногда нужно использовать.

Я хочу бороться с этим, и первым шагом является выявление кода JavaScript, нарушающего работу (или, возможно, некоторых других нарушающих ресурсов, которые знают), после этого может быть возможность выборочно заблокировать / автоматически переписать эти части или, возможно, нажать авторов для устранения проблем. в их коде.

Но как мне это сделать? В Firefox DevTools есть инспектор производительности, но, похоже, он записывает только время рендеринга фреймов, время отклика и т. Д. Я не смог найти информацию о том, на что тратится реальное время ЦП, и, насколько я мог, он также ограничен одной вкладкой. сказать.

Обновить

Я попытался отключить все расширения, и они показали, что они не вызывают 100% загрузки процессора.

Обновление 2

Я уже использую uBlock Origin. Также пробовал некоторую грубую блокировку скриптов сторонними доменами для проблемного сайта (используя это расширение), но в моем случае он либо остается как есть, либо полностью ломается. Поэтому мне нужно каким-то образом профилировать javascript в глобальном масштабе, чтобы увидеть, какая функция сходит с ума во время выполнения.

4
происходит ли то же самое в других браузерах? Blaine 7 лет назад 0
Я бы отключил все плагины браузера, чтобы доказать, что вы ничего не контролируете. Если это все еще происходит, первым делом можно просто запустить Process Explorer. Если вы посмотрите на вкладку потоков процесса firefox.exe, вы можете отсортировать по столбцу ЦП. Как выглядит стек? Интересные модули на нем, всегда одинаковые и т. Д. Я бы установил Инструменты отладки для Windows (SDK), чтобы получить последнюю версию dbghelp.dll - ссылка на нее в ProcessExplorer. Mozilla делает их символы доступными. Это только отправная точка и рассмотрение проблемы из общего процесса, работающего с точки зрения ОС. HelpingHand 7 лет назад 1
@Blaine еще не пробовал, но использование другого браузера для меня не вариант (кроме тестирования). Я пытаюсь решить проблему в Firefox. Или некоторые другие браузеры имеют более совершенные инструменты для разработчиков, которые могут помочь найти проблемные данные на веб-сайтах? Sarge Borsch 7 лет назад 0
@ EMK хорошее предложение, я постараюсь отключить ** расширения **. (Я уже не использую никаких плагинов **). Я не использую Windows, а в идеале ищу кроссплатформенные решения. Прямо сейчас я на macOS. Я не вижу загрузки процессора отдельными потоками в Activity Monitor, может быть, это можно было бы увидеть в утилитах командной строки (вверху)? Просто запуск `top`, кажется, дает очень неполную информацию ... Sarge Borsch 7 лет назад 0
У меня было несколько сайтов, которые сводили меня с ума. Для одного сайта, каждый раз, когда они использовали этот веб-сайт шрифта в своем jscript, даже мой четырехъядерный процессор работал на 100%. Исправление заключалось в добавлении четырех новых записей файла HOSTS, [пример = 127,0,0,0 block.com] для: "fonts.com" и "fast.fonts.com" (я также добавил к ним "www." URL-адрес). Следующее исправление для большинства всего остального, такого как wunderground.com, заключается в простом добавлении расширения «UBlock Origin», что удивительно. DaaBoss 7 лет назад 1
@DaaBoss см. Обновление 2. Кроме того, в этом случае он, похоже, не использует fonts.com, потому что в меню uBO такой записи нет… Sarge Borsch 7 лет назад 0
вам нужна ночная версия Firefox и используйте WPR / WPA для определения загрузки процессора: http://superuser.com/a/1164299/174557 magicandre1981 7 лет назад 0
@ magicandre1981 это похоже на решение только для Windows, поэтому я не могу попробовать. Sarge Borsch 7 лет назад 0
хорошо, в следующий раз добавьте тег вашей используемой операционной системы magicandre1981 7 лет назад 0
@ magicandre1981 Однако я ищу кроссплатформенные решения, и вопрос на самом деле не связан с конкретной ОС Sarge Borsch 7 лет назад 0
но только Windows предлагает лучший инструмент для диагностики использования процессора magicandre1981 7 лет назад 0
Я полностью забыл, как я обнаружил, что проблема была Fonts.com. Поймите это, и мы все могли бы узнать, как найти не только эту проблему, но и узнать, как диагностировать такой сайт. Было бы полезно, если бы вы могли поделиться несколькими полными URL-адресами сайта, которые вызывают проблемы, и тем, который не вызывает. Дублировать проблемы для любого из нас должно быть довольно легко, если вы делаете. DaaBoss 7 лет назад 0
@DaaBoss - это мессенджер Slack для веб, и проблема не воспроизводится всегда и только в некоторых «командах» Sarge Borsch 7 лет назад 0

1 ответ на вопрос

4
Wodanaz Spitfire

Вы можете использовать, about:performanceчтобы отследить нарушающую вкладку, а затем использовать регистратор Ublock, чтобы отследить, что вызывает высокую загрузку ЦП.

Вот как я узнал, что встроенное видео на YouTube вызывало проблемы, потому что оно продолжало загружаться, www.youtube.com/yts/jsbin/player_*************/en_US/remote.jsдаже несмотря на то, что я отключил автозапуск.

В этом случае я бы нашел это еще быстрее, если бы я установил регистратор Ублока на all(т.е. все вкладки) вместо одной конкретной вкладки.

Так как вы упомянули Ublock, но не регистратор, это может представлять интерес.