Какой-то диспетчер задач для JavaScript в Firefox 3?

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

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

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

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

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

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

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

Ответов (5)

Решение

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

В итоге

  • Firefox3 сохраняет свои закладки и историю в базе данных SQLite.
  • Каждый раз, когда вы загружаете страницу, она несколько раз записывается в эту базу данных.
  • SQLite глубоко заботится о том, чтобы вы не потеряли свои закладки, поэтому каждый раз, когда он записывает, дает ядру команду сбрасывать его файл базы данных на диск и гарантировать, что он полностью записан.
  • Многие варианты linux, когда говорят, что нужно сбросить, сбрасывают КАЖДЫЙ ФАЙЛ. Это может занять до минуты или больше, если у вас есть фоновые задачи, выполняющие какие-либо операции с интенсивным использованием диска.
  • Ядро заставляет firefox ждать, пока происходит эта очистка, что блокирует пользовательский интерфейс.

Для Firefox не существует инструмента типа «проводник процессов»; но есть https://developer.mozilla.org/en-US/docs/Archive/Mozilla/Venkman с режимом профилирования, который вы можете использовать, чтобы увидеть время, потраченное хромом (то есть не-контент, это не веб-страница ) скрипты.

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

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

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

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

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

Вот сообщение ( Диспетчер процессов Google Chrome ) Джона Ресига из Mozilla и jQuery по этой теме.

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

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

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

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

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