Controlla l'utilizzo della CPU tramite scheda o componente aggiuntivo su firefox su mac [duplicato]


13

La mia versione di Firefox ha un processo / thread in fuga che lo fa utilizzare il 100% della CPU sul mio MacBook Pro (OSX 10.7.4) dopo pochi minuti. Ho provato a usare about:memorye about:addons-memoryprovare a capire cosa sta causando il problema, ma non sembra affatto correlato all'uso della memoria. Esiste invece un modo per vedere l'utilizzo della CPU tramite scheda o componente aggiuntivo?

Risposte:


6

In realtà, la about:memoryscheda mostra l'allocazione di memoria per scheda; è solo un po 'difficile grok.

Quando vai a about:memory, dovresti vedere un elenco di allocazioni di memoria disposte gerarchicamente. Il primo elemento di primo livello nell'elenco dovrebbe essere Allocazioni esplicite . Sotto quello ci sono diversi nodi foglia. Quello che stai cercando sono gli oggetti finestra . Sotto questo, la maggior parte dei nodi etichettati "top" si riferiscono a schede (se carichi un sito web, vedrai l'indirizzo accanto a "top"). Ad esempio, vedo:

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

I numeri nella parte anteriore indicano l'utilizzo della memoria, indicato anche come percentuale dell'utilizzo complessivo della memoria di Firefox.

Viene inoltre visualizzato l'utilizzo di memoria aggiuntiva, ma non esplicitamente per aggiunta. Dovresti cercare nell'elenco per capirlo trovando tutti i componenti appartenenti a un componente aggiuntivo e sommando le allocazioni di memoria.

Nota, sono sul canale Beta (quindi attualmente utilizzo Firefox 22.0b2) ma credo che funzioni con versioni precedenti.


grazie, tuttavia, non ho notato perdite di memoria. sembra che la memoria tende a rimanere abbastanza costante. è solo che dopo un po ', la CPU si alza e rimane così.
claire

11
La domanda riguardava specificamente l' utilizzo della CPU , non la memoria.
laggingreflex,

@laggingreflex: Sì, lo so. Stavo rispondendo all'affermazione "ma non sembra affatto essere correlato all'uso della memoria". Tuttavia, ripensandoci, forse Claire in realtà significava "CPU" anziché "memoria".
InnerPortal,

Con Firefox 38 (in esecuzione su Linux), ho dovuto fare clic Measuresotto Show Memory Reportsper generare e visualizzare l'albero che descrivi. (Se questo è lo stesso su tutte le piattaforme, potrebbe rendere la risposta un po 'più completa.)
joeytwiddle

5

Esistono diversi motivi per l'utilizzo elevato della CPU in Firefox, descritti di seguito.

1.Add-ons

La solita causa dei problemi della CPU è un brutto componente aggiuntivo. Il primo test da fare è avviare Firefox senza componenti aggiuntivi.

Da Risolvi i problemi di Firefox utilizzando la Modalità provvisoria :

Nella parte superiore della finestra di Firefox, fai clic sul pulsante Firefox, vai al menu Guida e seleziona Restart with Add-ons Disabled.... Firefox verrà avviato con la finestra di dialogo Modalità provvisoria di Firefox. Nota: puoi anche avviare Firefox in modalità provvisoria tenendo premuto il tasto Maiusc durante l'avvio di Firefox.

Ora hai due opzioni:

Fare clic sul pulsante Avvia in modalità provvisoria disabiliterà temporaneamente le estensioni e i temi, disattiva l'accelerazione hardware e ripristina le personalizzazioni della barra degli strumenti e dei pulsanti. Quando esci dalla Modalità provvisoria e avvii Firefox normalmente, le estensioni, i temi e le impostazioni torneranno allo stato in cui si trovavano prima di entrare in Modalità provvisoria.

Se in modalità provvisoria non hai problemi con la CPU, il problema è con uno dei tuoi componenti aggiuntivi. È possibile utilizzare il menu Tools > Add-onsper disabilitare in modo selettivo i componenti aggiuntivi e riavviare Firefox fino a trovare quello difettoso.

2.Flash

Flash è noto per tali problemi. Uno dei modi abituali per risolverlo è disabilitare l'accelerazione hardware di Firefox utilizzando il menu Tools > Options, scheda Avanzate, per deselezionare Use Hardware Acceleration When Available.

I due componenti aggiuntivi Adblock Plus e NoScript sono consigliati per bloccare in modo selettivo elementi non necessari, tra cui Flash, nella pagina visualizzata.

3.JavaScript

Il JavaScript nel sito Web che si sta visualizzando in una delle schede potrebbe essere codificato male e sprecare la CPU in loop.

Il miglior rimedio è usare NoScript per evitare di eseguire JavaScript da siti Web di cui non ti fidi. Questa è anche una misura di sicurezza che chiunque dovrebbe usare per evitare exploit di scripting su più siti .

4.Profiling

Se non è chiaro quale sito Web stia causando l'elevata CPU, è possibile utilizzare la profilazione in Firefox, anche se questo non è un semplice esercizio.

I debugger che eseguono anche la profilazione sono:

Se sei uno sviluppatore e ti senti come un'avventura, e dal momento che sei su Mac, potresti utilizzare DTrace come spiegato in Prestazioni / Ottimizzare JavaScript con DTrace , che è lo strumento utilizzato dagli sviluppatori Mozilla.


3

@claire: Al momento non esiste un modo "semplice" per vedere cosa vuoi. Se segui harrymc, troverai alcune informazioni sulla fonte del problema, ma forse non è sicuro.

Se vuoi andare nel modo "difficile", questo ti mostrerà quale sta mangiando la tua CPU in Firefox e / o i suoi plugin, devi iniziare a eseguire il debug di Firefox nel tuo ambiente (a volte non è solo Firefox e il plugin stesso, ma una lib corrotta su cui si basano). Ecco una spiegazione completa su hot per farlo, se hai qualche idea sulla programmazione. XCode può essere scaricato gratuitamente da Apple:

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

Ma non è necessario eseguire il debug del codice mozilla completo, ma troverai il punto correlato all'aumento dell'utilizzo della CPU. Questo può dirti esattamente da dove proviene il problema (ad esempio un cattivo loop ecc.).


1

Se per qualche motivo Firefox sta assorbendo e consumando tutto l'utilizzo della CPU, puoi provare a limitare il no. dei processori e la priorità che la CPU darà a quel processo per ridurre l'utilizzo della CPU.

Per fare ciò, fai clic su ( Ctrl+ Alt+ Del) per aprire Task Manager e quindi fai clic sulla scheda del processo (quella che mostra tutto il processo con la sua estensione (praticamente come sei su Windows, tutto il processo dovrebbe terminare con un'estensione .exe). su di esso e selezionare Seleziona priorità per impostare la priorità (se è impostato su un valore più alto del normale, metterlo su normale, altrimenti se è impostato su normale e si desidera abbassarlo più di selezionare un valore più basso del normale) e impostare Affinità per limitare numero di processori che contribuiscono a quel processo. Impostare il numero di processori che si desidera e quindi fare clic su OK per tornare indietro. Verificare se funziona.

Ricorda che questo funziona solo per computer multiprocessore (come dual-core, quad-core, ecc.) E anche che l'utilizzo della CPU è diverso dall'uso della memoria.


1
Scusa per il mio errore, ho dimenticato di leggere che stavi usando Firefox su MAC. Non ho molta esperienza con MAC ma se contiene task manager come quello di Windows, questo metodo funziona solo per il sistema Windows.
Cacciatore,

3
Questo è un buon consiglio, ma non si avvicina in alcun modo alla risposta alla domanda reale.
laggingreflex,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.