Перевірте використання процесора за вкладками або за допомогою додатку на firefox на mac [дублікат]


13

У моїй версії Firefox є відвертий процес / потік, завдяки якому він через 100 хвилин використовує 100% процесор у моєму MacBook Pro (OSX 10.7.4). Я намагався використовувати about:memoryі about:addons-memoryнамагатися з’ясувати, що викликає проблему, але, схоже, це зовсім не пов’язано з використанням пам'яті. Чи є натомість спосіб побачити використання процесора за вкладками чи надбудовами?

Відповіді:


6

Власне, на about:memoryвкладці відображається розподіл пам'яті за вкладками; просто трохи потрудитись.

Під час переходу до них about:memoryслід побачити список розподілу пам’яті, розташованих ієрархічно. Першим елементом верхнього рівня у списку мають бути явні виділення . Під цим є кілька листових вузлів. Той, кого ви шукаєте, - це віконні об’єкти . Під цим більшість вузлів із позначкою "верх" посилаються на вкладки (якщо ви завантажуєте веб-сайт, ви побачите адресу поруч із "вгорі"). Наприклад, я бачу:

├───29.63 MB (15.27%) -- window-objects
│   ├──12.64 MB (06.52%) ++ top(chrome://browser/content/browser.xul, id=3)
│   ├───6.84 MB (03.53%) ++ top(http://www.cnn.com/, id=31)
│   ├───4.55 MB (02.35%) ++ top(https://ftp.mozilla.org/, id=24)
│   ├───3.50 MB (01.80%) ++ (5 tiny)

Цифри на передній панелі - це об'єм пам'яті, який також виражається у відсотках від загальної пам'яті Firefox.

Показано також використання функції пам'яті, але явно не додається. Вам доведеться шукати список, щоб розібратися в цьому, знайшовши всі компоненти, що належать до додатку, і додавши розподіли пам'яті.

Зауважте, я перебуваю на бета-каналі (тому зараз використовую Firefox 22.0b2), але я вважаю, що це працює і в старих випусках.


дякую, я не випадково помітив витоку пам'яті. здається, що пам'ять, як правило, залишається досить постійною. просто через деякий час процесор спрацьовує і залишається таким.
claire

11
Питання стосувалося конкретно використання процесора , а не пам’яті.
laggingreflex

@laggingreflex: Так, я знаю. Я відповідав на твердження, "але це, здається, зовсім не пов'язане з використанням пам'яті". Однак, озирнувшись на це, можливо, claire насправді означала "CPU" замість "memory".
InnerPortal

У Firefox 38 (працює на Linux), я повинен був клацнути Measureпід Show Memory Reportsдля того , щоб сформувати і переглянути дерево ви описуєте. (Якщо це однаково на всіх платформах, це може зробити відповідь трохи
повнішою

5

Існує кілька причин високого використання процесора у Firefox, детально описаних нижче.

1.Додатки

Звичайна причина проблем із процесором - це погана надбудова. Перший тест, який слід зробити, це запустити Firefox без доповнень.

З усунення неполадок Firefox у безпечному режимі :

У верхній частині вікна Firefox натисніть кнопку Firefox, перейдіть до меню довідки та виберіть Restart with Add-ons Disabled.... Firefox запуститься з діалогового вікна безпечного режиму Firefox. Примітка. Ви також можете запустити Firefox у безпечному режимі, утримуючи клавішу Shift під час запуску Firefox.

Тепер у вас є два варіанти:

Якщо натиснути кнопку «Пуск у безпечному режимі», тимчасово вимкніть розширення та теми, вимкніть апаратне прискорення та скиньте панель інструментів та налаштування кнопок. Коли ви вийдете з безпечного режиму і запустите Firefox нормально, ваші розширення, теми та налаштування повернуться до стану, в якому вони були, перш ніж ви перейшли в безпечний режим.

Якщо в безпечному режимі у вас немає проблем з процесором, проблема полягає в одному з ваших додатків. Ви можете використовувати меню Tools > Add-onsдля вибіркового відключення додатків та перезавантаження Firefox, поки не знайдете поганий.

2.Flash

Flash відомий для таких проблем. Один із звичайних способів виправити це - відключити апаратне прискорення Firefox, скориставшись пунктом меню Tools > OptionsДодаткові вкладки Use Hardware Acceleration When Available.

Два доповнення Adblock Plus і NoScript рекомендується вибірково блокувати непотрібні елементи, включаючи Flash, на переглянутій сторінці.

3.JavaScript

JavaScript на веб-сайті, який ви переглядаєте на одній із ваших вкладок, може бути погано зашифрований і витрачати CPU шляхом циклічного циклу.

Найкращим засобом є використання NoScript, щоб уникнути виконання JavaScript з веб-сайтів, яким ви не довіряєте. Це також міра безпеки, яку кожен повинен використати, щоб уникнути подвигу сценаріїв міжміських сайтів .

4.Профілювання

Якщо дуже незрозуміло, який веб-сайт викликає високий процесор, можна використовувати профілювання в Firefox, хоча це не проста практика.

Налагоджувачами, які також займаються профілюванням, є:

Якщо ви розробник і відчуваєте себе як пригода, і оскільки ви перебуваєте на Mac, ви можете використовувати DTrace, як це пояснено в Продуктивність / Оптимізація JavaScript за допомогою DTrace , який є інструментом, який використовують розробники Mozilla.


3

@claire: Наразі немає простого способу побачити те, що ти хочеш. Якщо ви підете шляхом harrymc, ви знайдете інформацію про джерело проблеми, але, можливо, не точно.

Якщо ви хочете пройти «важкий» шлях, який покаже вам, що харчується вашим процесором в Firefox та / або його плагінах, вам потрібно почати налагоджувати ваш Firefox у вашому оточенні (іноді це не просто firefox та або сам плагін, але пошкоджена в’язка, на яку вони покладаються). Ось повне пояснення на гарячому, щоб зробити це, якщо ви маєте уявлення про програмування. XCode можна безкоштовно завантажити з яблука:

https://developer.mozilla.org/en-US/docs/Debugging_on_Mac_OS_X

Але вам не потрібно налагоджувати повний код mozilla, але ви знайдете точку, яка корелює з підвищенням використання процесора. Це може точно сказати, звідки виникає проблема (така погана петля тощо).


1

Якщо з якоїсь причини ваш Firefox займається і їсть все ваше CPU, тоді ви можете спробувати обмежити "no". процесорів та пріоритет, який надасть процесор цьому процесу, щоб зменшити використання процесора.

Для цього натисніть ( Ctrl+ Alt+ Del), щоб відкрити диспетчер завдань, а потім натисніть на вкладку "Процес" (та, яка показує весь процес з їх розширенням (в основному, як ви працюєте в Windows, весь процес повинен закінчуватися розширенням .exe). Клацніть правою кнопкою миші на ньому та виберіть Вибрати пріоритет, щоб встановити пріоритет (Якщо він встановлений вище норми, тоді поставте його до нормального, в іншому випадку, якщо він встановлений у нормальному режимі, і ви хочете знизити його більше, ніж вибрати нижче значення, ніж нормальне) та встановіть Affinity, щоб обмежити № процесорів, які сприяють цьому процесу. Встановіть кількість процесорів, які ви хочете, а потім натисніть кнопку ОК, щоб повернутися назад. Перевірте, чи працює це.

Пам'ятайте, що це працює лише для багатопроцесорних комп'ютерів (наприклад, двоядерних, чотирьохядерних тощо), а також, що використання процесора відрізняється від використання пам'яті.


1
Вибачте за свою помилку, я забув прочитати, що ви використовували firefox на MAC. У мене немає великого досвіду роботи з MAC, але якщо він містить будь-який диспетчер завдань, як Windows 1, цей метод працює лише для системи Windows.
Мисливець

3
Це хороша порада, але ні в якому разі навіть не відповідає відповіді на власне питання.
laggingreflex
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.