-->

sábado, 1 de dezembro de 2007

Firefox consumindo CPU demais

Quando eu escrevi meu post sobre o congelamento do Firefox eu já passava também pelo problema do excesso de consumo de CPU, mas ainda não tinha informações suficientes, por isso deixei de lado. Hoje consegui identificar com precisão um site que gatilha o problema.

Eu senti que o PC estava lerdo e ao abrir o Gerenciador de Tarefas do XP vi que o Firefox estava consumindo entre 20 e 30% da CPU com picos de 80%, mesmo em "idle", quando o normal seria de não mais que 10%. Como desta vez eu tinha poucas abas abertas (umas 13), me animei a investigar o problema. Comecei fechando aba por aba, de olho no consumo da CPU, até identificar o site culpado.

Eu tinha duas páginas abertas que estavam criando o problema: Esta e esta (parecem, mas não são iguais). Quando fui fechar a primeira já notei que era uma forte candidata por causa da "neve" caindo e realmente ao fechar ambas o problema sumiu.



Se qualquer uma delas estiver em primeiro plano, o consumo da CPU sobe para 80% ou mais. Em segundo plano o consumo fica nos 30% (idealmente, deveria ser zero).

Nota: Não é um problema que atinge apenas o Firefox. Eu testei no IE7 e o resultado foi semelhante.

A culpa parece ser do "Snow Effect Script". Eu estou usando o complemento noscript para barrar a execução de javascript no Firefox, mas este site eu havia liberado porque não estava conseguindo fazer downloads com os scripts bloqueados. Pedindo ao noscript para bloquear o site novamente, o problema sumiu.



Já vi que pode ser mais inteligente, da próxima vez que acontecer, procurar por abas que estejam desbloqueadas no noscript e bloqueá-las de olho no consumo da CPU, do que simplesmente sair fechando uma de cada vez como vinha fazendo.

Resolvido o problema (por ora) decidi procurar se não haveria um complemento do Firefox que detectasse o problema em vez de esperar que eu percebesse. Eu gostaria de um complemento que fizesse algo como:
  1. Indicar quanto de CPU cada aba está usando. Eu não faço idéia da complexidade disso, mas se for possível ajudaria muito a diagnosticar diversos tipos de problema no Firefox;
  2. Alertar quando o Firefox começasse a consumir continuamente um percentual exagerado de CPU.
Infelizmente, não consegui encontrar nada do tipo, mas achei um complemento que pode ser útil: StatusbarEx mostra na barra de status o total que o Firefox está consumindo de memória e CPU. Não é exatamente o que eu queria, mas pelo menos dá para notar um pouco mais rápido quando há algo errado.

Na imagem, o Firefox está consumindo 109MB de RAM e 57% da CPU.



O complemento ainda tem uns problemas a resolver. Com todas as opções default ativadas, statusbarEx impede a exibição da barra de rolagem em certas janelas, como a de comentários do blogspot/blogger, o que inviabiliza o uso. É preciso não usar nenhuma das opções "show speed..." para a barra de rolagem voltar a aparecer.

Não deve ser difícil para o autor de StatusbarEx criar o alerta em caso de consumo excessivo de CPU (meu segundo requerimento), já que basta pegar o consumo de CPU do Firefox, que ele já sabe como obter, e calcular a média em um certo intervalo de tempo.

11 comentários:

  1. No Opera tmabém aconteceu o problema.

    ResponderExcluir
  2. Eis um aplicativo que reduz drasticamente o consumo de memoria no firefox:
    http://felipex.net/2007/11/08/firefox-ultimate-optimizer-v11/

    ResponderExcluir
  3. Veja o printscreen tirado pelo próprio autor do programa: http://felipex.net/wp-content/uploads/2007/11/usando_firefox-ultimate-optimizer.png

    260k pro aplicativo dele e 160k pro Firefox!?

    Eu não entendo como pode chegar a tão pouco (é até impossível um valor desse pro Firefox).

    Teria como esse programa esconder o valor real consumido!?

    Quanto ao problema relatado nesse post, aqui quando o Firefox estava minimizado ficava entre 0 e 5% (P4 2,4HT)

    ResponderExcluir
  4. Estes bugs do Firefox já estão enchendo o saco, assim vou acabar achando que o IECA é melhor ( vade retro ).

    Não é só com aquelas páginas que acontecem consumo excessivo de CPU, acontece até com páginas bem mais simples, como por exemplo as páginas que mostram o consumo interno da minha rede ( do condomínio mostradas pelo MRTG e pelo NTOP ), que provoca picos de consumo repetitivos ( só faz carregar umas imagens de tempos em tempos ).

    ResponderExcluir
  5. Cada vez que eles mexem no Firefox, parece que fica pior.

    ResponderExcluir
  6. Mesma coisa no IE7.

    Rubens.

    ResponderExcluir
  7. Muito bom, mas pena que só dá suporte a Windows. Não existe versão para o Linux. Não gosto muito de extensões que são plataform-dependent, mas vou instalar no micro do trabalho. Valeu!

    ResponderExcluir
  8. Henzo,

    Eu não conheço o complemento e não testei, mas sou bem cético quanto a milagres desse calibre.

    ResponderExcluir
  9. Fiz o teste aqui no IE7. Fiquei observando no AMD Power Monitor e realmente logo apareceram picos de consumo, mas o que mais me chamou a atenção foi o cooler do processador que começou a girar na máxima velocidade quando normalmente fica parado ou quase parado. Fico imaginando o impacto ambiental que esse tipo de página pode causar. É um consumo de energia desnecessário. Aliás, é grande a quantidade de gente com processadores modernos que não conhece os recursos de gerenciamento de energia de tais CPU's, deixando até de economizar dinheiro.

    ResponderExcluir
  10. E ai, como foi que ficou com a versão 2.0.0.11 ?

    Eu, depois de muito me bater, descobri que a maioria dos meus problemas com o Firefox ( a maioria mas não todos ) é devido a uma combinação do Firefox + Windows XP + Velox + µTorrent ligado. Esta combinação fazia que em alguns momentos o Firefox não quisesse abrir praticamente nada, o problema foi solucionado fechando o µTorrent ( eu tentei mudar algumas coisas na configuração dele, mas não resolveu totalmente ). O interessante é que este fenômeno só acontecia em algumas horas do dia ( a noite ficava bem pior ).

    ResponderExcluir
  11. Intruder_A6:

    Eu não tive esse problema, mas conheço gente que teve e eles resolveram instalando um programa chamado cFosSpeed. Ele gerencia sua conexão com a internet usando traffic shapping. Ele é bem melhor do que o driver do Windows. O programa é pago, mas você pode testar ele por uns dias.

    ResponderExcluir

Siga as regras do blog ou seu comentário será ignorado.