Какой-то диспетчер задач для JavaScript в Firefox 3? - PullRequest
7 голосов
/ 11 августа 2008

Недавно у меня возникли проблемы с Firefox 3 в Ubuntu Hardy Heron.

Я нажму на ссылку, и она будет зависать некоторое время. Я не знаю, является ли это ошибкой в ​​Firefox 3 или страницей, выполняющей слишком много клиентского JavaScript, но я бы хотел немного ее отладить.

Итак, мой вопрос: «Есть ли способ использовать какой-нибудь проводник процессов или диспетчер задач для Firefox 3?»

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

Кто-нибудь знает плагин, который делает это, или что-то подобное? Кто-нибудь еще проводил такую ​​проверку другим способом?

Я знаю о FireBug, но не представляю, как бы я использовал его, чтобы просмотреть, какая вкладка использует много ресурсов.

Есть предложения или идеи?

Ответы [ 5 ]

8 голосов
/ 11 августа 2008

Вероятно, это потрясающая ошибка fsync в firefox3 , которая является огромной кучей неудач.

В итоге

  • Firefox3 сохраняет свои закладки и историю в базе данных SQLite
  • Каждый раз, когда вы загружаете страницу, она записывает в эту базу данных несколько раз
  • SQLite очень заботится о том, чтобы вы не потеряли свои закладки, поэтому каждый раз, когда он пишет, дает ядру команду сбросить файл базы данных на диск и убедиться, что он полностью записан
  • Многие варианты linux, когда говорят, что нужно очищать, сбрасывают каждый файл. Это может занять до минуты или более, если у вас есть фоновые задачи, выполняющие какие-либо операции с большим количеством дисков.
  • Ядро заставляет Firefox ждать, пока происходит этот сброс, что блокирует интерфейс.
3 голосов
/ 02 сентября 2008

Итак, мой вопрос, есть ли способ использовать какой-нибудь проводник процессов или диспетчер задач для Firefox 3?

Из-за того, как построен Firefox, в данный момент это невозможно. Но новый Internet Explorer 8 Beta 2 и только что анонсированный браузер Google Chrome движутся в этом направлении, поэтому я полагаю, что Firefox тоже пойдет туда.

Вот сообщение ( Google Chrome Process Manager ), написанное Джоном Резигом из Mozilla, и известность jQuery по теме.

1 голос
/ 23 марта 2010

XUL Profiler - это отличное расширение, которое может указывать на расширения и на стороне клиента JS бананы с точки зрения процессора. Он работает не для отдельных вкладок, а для каждого сценария (или около того). Обычно вы можете связать эти сценарии .js со своими вкладками или расширениями вручную.

Стоит также упомянуть, что в Google Chrome встроен действительно хороший диспетчер задач, который позволяет использовать память и ЦП для каждой вкладки, расширения и плагина.

[XUL Profiler] является профилировщиком Javascript. Это показывает прошедшее время в каждом методе как график, а также зоны холста браузера перерисовывает, чтобы помочь отследить потребление ЦП кода.

Отслеживает все вызовы JS и рисует события в контексте XUL и страниц. Строит анимация, показывающая динамически Перерисовываются зоны холста.

Начиная с FF 3.6.10, он не обновлен, так как он больше не помечен как совместимый. Но это все еще работает, и вы можете преодолеть несовместимость с таким же замечательным расширением MR Tech Toolkit .

1 голос
/ 20 августа 2008

Существует подробное обсуждение этого , которое объясняет все проблемы, связанные с fsync, которые затрагивали версии FF до 3.0. В общем, с тех пор я не видел такого поведения, и на самом деле это не должно быть проблемой, если ваша система также не выполняет интенсивные задачи ввода-вывода. Firebug / Venkman отлично подходят для отладчиков, но им было бы больно находить подобные проблемы для чужого кода, IMO.

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

1 голос
/ 11 августа 2008

Для Firefox не существует какого-либо инструмента "Process Explorer"; но есть http://developer.mozilla.org/en/docs/Venkman с режимом профилирования, который вы можете использовать, чтобы увидеть время, затрачиваемое сценариями Chrome (то есть не контент, а не веб-страница).

Из того, что я читал об этом, DTrace также может быть полезен для такого рода вещей, но это требует создания пользовательской сборки и, возможно, добавления дополнительных зондов к источнику. Я сам еще не играл с ним.

...