Sprawdź użycie procesora według karty lub dodatku do Firefoxa na Macu [duplikat]


13

Moja wersja Firefoksa ma niekontrolowany proces / wątek, który po kilku minutach używa 100% procesora na moim MacBooku Pro (OSX 10.7.4). Próbowałem użyć about:memoryi about:addons-memoryspróbować dowiedzieć się, co jest przyczyną problemu, ale wydaje się, że nie ma to żadnego związku z wykorzystaniem pamięci. Czy zamiast tego można sprawdzić użycie procesora według karty lub dodatku?

Odpowiedzi:


6

W rzeczywistości about:memorykarta pokazuje przydział pamięci według karty; to tylko trochę trudne do zrozumienia.

Gdy przejdziesz do about:memory, powinieneś zobaczyć listę przydziałów pamięci ułożonych hierarchicznie. Pierwszą pozycją najwyższego poziomu na liście powinny być jawne alokacje . Poniżej znajduje się kilka węzłów liści. Ten, którego szukasz, to obiekty okienne . Poniżej większość węzłów oznaczonych „u góry” odnosi się do kart (jeśli załadujesz witrynę, zobaczysz adres obok „u góry”). Na przykład widzę:

├───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)

Liczby z przodu to zużycie pamięci, podane również jako procent całkowitego zużycia pamięci przez Firefox.

Wykorzystanie pamięci dodatkowej jest również pokazane, ale nie jawnie przez dodanie. Trzeba będzie przeszukać listę, aby się zorientować, znajdując wszystkie składniki należące do dodatku i sumując przydziały pamięci.

Uwaga: korzystam z kanału Beta (obecnie korzystam z przeglądarki Firefox 22.0b2), ale uważam, że działa to w starszych wersjach.


dzięki, nie zauważyłem jednak żadnych wycieków pamięci. wygląda na to, że pamięć zwykle pozostaje niezmienna. po prostu procesor przyspiesza i tak pozostaje.
claire

11
Pytanie dotyczyło w szczególności użycia procesora , a nie pamięci.
laggingreflex,

@laggingreflex: Tak, wiem. Odpowiadałem na stwierdzenie „ale wydaje się, że nie ma to żadnego związku z wykorzystaniem pamięci”. Jednak patrząc wstecz, być może claire faktycznie oznaczała „procesor” zamiast „pamięci”.
InnerPortal,

W przeglądarce Firefox 38 (działającej w systemie Linux) musiałem kliknąć Measurepod Show Memory Reports, aby wygenerować i wyświetlić opisywane drzewo. (Jeśli jest to to samo na wszystkich platformach, odpowiedź może być nieco bardziej kompletna.)
joeytwiddle

5

Istnieje kilka powodów wysokiego zużycia procesora w Firefoksie, szczegółowo opisanych poniżej.

1. dodatki

Typową przyczyną problemów z procesorem jest zły dodatek. Pierwszym testem, jaki należy wykonać, jest uruchomienie Firefoksa bez dodatków.

Od Rozwiązywanie problemów z Firefoksem w trybie awaryjnym :

W górnej części okna Firefox kliknij przycisk Firefox, przejdź do menu Pomoc i wybierz Restart with Add-ons Disabled.... Firefox uruchomi się w oknie dialogowym Tryb awaryjny Firefox. Uwaga: Firefox można także uruchomić w trybie awaryjnym, przytrzymując klawisz Shift podczas uruchamiania Firefoksa.

Masz teraz dwie opcje:

Kliknięcie przycisku Start w trybie awaryjnym spowoduje tymczasowe wyłączenie rozszerzeń i motywów, wyłączenie przyspieszenia sprzętowego oraz zresetowanie paska narzędzi i dostosowań przycisków. Po wyjściu z trybu awaryjnego i normalnym uruchomieniu przeglądarki Firefox rozszerzenia, motywy i ustawienia powrócą do stanu, w jakim były przed przejściem do trybu awaryjnego.

Jeśli w trybie awaryjnym nie występują problemy z procesorem, problem dotyczy jednego z dodatków. Możesz użyć menu Tools > Add-onsdo selektywnego wyłączania dodatków i restartowania Firefoksa, aż znajdziesz zły.

2. Flash

Flash jest znany z takich problemów. Jednym ze zwykłych sposobów jego naprawy jest wyłączenie akceleracji sprzętowej Firefoksa za pomocą menu Tools > Options, zakładki Zaawansowane, aby odznaczyć Use Hardware Acceleration When Available.

Dwa dodatki Adblock Plus i NoScript są zalecane do selektywnego blokowania niepotrzebnych elementów, w tym Flash, na przeglądanej stronie.

3.JavaScript

JavaScript w witrynie, którą przeglądasz na jednej z kart, może być źle zakodowany i marnować procesor przez zapętlenie.

Najlepszym rozwiązaniem jest użycie NoScript, aby uniknąć uruchamiania JavaScript z witryn, którym nie ufasz. Jest to również środek bezpieczeństwa, którego każdy powinien użyć, aby uniknąć exploitów skryptów krzyżowych .

4. Profilowanie

Jeśli nie jest jasne, która strona powoduje wysoki procesor, można użyć profilowania w przeglądarce Firefox, chociaż nie jest to proste ćwiczenie.

Debugery, które również wykonują profilowanie, to:

Jeśli jesteś programistą i czujesz się jak przygoda, a ponieważ jesteś na komputerze Mac, możesz użyć DTrace, jak wyjaśniono w Performance / Optimization JavaScript with DTrace , który jest narzędziem używanym przez programistów Mozilli.


3

@claire: Obecnie nie ma łatwego sposobu, aby zobaczyć, czego chcesz. Jeśli pójdziesz drogą harrymca, znajdziesz trochę informacji o źródle problemu, ale może nie na pewno.

Jeśli chcesz przejść na „twardą” ścieżkę, która pokaże, co zjada Twój procesor w firefoxie i / lub jego wtyczkach, musisz zacząć debugować swojego firefoxa w swoim środowisku (czasem nie jest to tylko firefox i sama wtyczka, ale zepsute biblioteki, na których polegają). Oto pełne wyjaśnienie, jak to zrobić, jeśli masz jakieś pojęcie o programowaniu. XCode można pobrać bezpłatnie z Apple:

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

Ale nie musisz debugować pełnego kodu Mozilli, ale znajdziesz punkt, który jest powiązany z rosnącym zużyciem procesora. To może dokładnie powiedzieć, skąd pochodzi problem (takie złe zapętlenie itp.).


1

Jeśli z jakiegoś powodu twój Firefox zajmuje i zużywa cały procesor, możesz spróbować ograniczyć liczbę nie. procesorów i priorytet, jaki procesor nada temu procesowi, aby zmniejszyć użycie procesora.

Aby to zrobić, kliknij ( Ctrl+ Alt+ Del), aby otworzyć Menedżera zadań, a następnie kliknij kartę procesu (ten, który pokazuje cały proces z jego rozszerzeniem (w zasadzie jak w systemie Windows, cały proces powinien kończyć się rozszerzeniem .exe). Kliknij prawym przyciskiem myszy i wybierz Wybierz priorytet, aby ustawić priorytet (Jeśli jest ustawiony na wyższy niż normalny, ustaw go na normalny, w przeciwnym razie, jeśli jest ustawiony na normalny i chcesz go obniżyć bardziej niż wybierz niższą wartość niż normalny) i Ustaw powinowactwo, aby ograniczyć liczba procesorów, które uczestniczą w tym procesie. Ustaw liczbę procesorów, które chcesz, a następnie kliknij przycisk OK, aby wrócić. Sprawdź, czy to działa.

Pamiętaj, że działa to tylko na komputerach wieloprocesorowych (takich jak dwurdzeniowe, czterordzeniowe itp.), A także, że użycie procesora jest inne niż użycie pamięci.


1
Przepraszam za mój błąd. Zapomniałem przeczytać, że używasz Firefoxa na MAC. Nie mam dużego doświadczenia z MAC, ale jeśli zawiera on dowolnego menedżera zadań, takiego jak Windows, ta metoda działa tylko w systemie Windows.
Hunter,

3
To dobra rada, ale w żaden sposób nie jest bliska odpowiedzi na rzeczywiste pytanie.
laggingreflex,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.