quinta-feira, 17 de julho de 2008

Melhorando o desempenho do firefox



Nesse tutorial eu pretendo explicar como melhorar o desempenho do firefox apenas alterando suas configurações, sem precisar de mais nada. O foco é no Linux, mas funciona em qualquer plataforma, e já foi comprovada eficiencia também no Windows de acordo com meu amigo de Budega Véia NaNoCoDe
Antes de mais nada, devo dizer que a referência é este artigo do site Computer World que está todo em Inglês. Eu apenas irei dar uma resumida nele, traduzir o mais importante e recomendar os melhores valores.
Também lembre-se que nem todas as configurações são existentes no navegador, e algumas devem ser criadas.
Antes de tudo, faça um backup das suas configurações do firefox, pois podem ocorrer algumas coisas bizarras ou não, nunca se sabe. Para fazer o backup basta copiar a pasta .mozilla/firefox/ na sua pasta pessoal (home) e caso precise usá-lo, apague a pasta existente no home e cole a pasta copiada anteriormente. Eu avisei hein. :twisted:



Instruções

Para acessar as configurações, digite

Código: Selecione o codigo abaixo
about:config



na barra de endereços do firefox, que deve abrir uma area de configuração cheia de valores e nomes estranhos.
Para encontrar as chaves a serem editadas, basta colar o nome delas na barra de pesquisa.
Abaixo das descrições tem os valores que devem ser editados. Caso o valor não exista, você deve dar um clique com o botão direito na parte das configurações e selecionar "new" e definir o tipo (q eh explicitado nas descrições).

Então, lá vamos nós.

Iniciar a renderização das páginas mais rapidamente
O firefox por padrão espera 0.25 segundos para começar a renderizar as páginas. Porém pode-se tirar este tempo de espera, com isso as páginas começam a ser exibidas no exato momento em que o firefox recebe as informações.
Nome: nglayout.initialpaint.delay
Status: user set
Type: interger
Value: 0 (valor opcional, você pode tentar outros valores) (padrão se não especificado: 25000, 0.25 segundos)

Configurando o número de vezes em que a pagina é renderizada na tela
Esse é um dos valores que mais comem memória no firefox a partir da versão 2.0. Isso porque para ter um bom desempenho com ajax, as páginas devem ser renderizadas na tela diversas vezes, porém quando este valor é um pouco acima do "normal', o navegador exige mais recursos do sistema. Aumentando este valor que representa o intervalo entre as atualizações, consegue aumentar drasticamente o desempenho do navegador no geral, e reduzir o consumo de memória.
Nome: content.notify.interval
Status: user set
Type: interger
Value: 2000000 (valor opcional, você pode tentar outros valores) (padrão se não especificado: 120000, 0.12 segundos)

Caso você crie esta variável ou ela já esteja presente, certifique-se que este valor também esteja presente:

Nome: content.notify.ontimer
Status: user set
Type: boolean
Value: true

Configurando o intervalo de verificação de eventos do usuário enquanto carrega uma página
Quando uma página está carregando, o firefox verifica de tempos em tempos se nenhum evento está ocorrendo, como por exeplo se o usuário não está rolando a página. Este intervalo pode ser diminuido, as páginas levarão mais tempo para carregar e o navegador responderá melhor enquanto carregando. Caso aumente este valor, as páginas carregarão um pouco mais rápido, mas durante este tempo o navegador não irá responder com precisão.
Nome: content.switch.threshold
Status: user set
Type: interger
Value: 10000 (valor opcional, você pode tentar outros valores) (valor baixo, irá carregar mais rápido, porém com suas consequencias)

Caso você crie esta variável ou ela já esteja presente, certifique-se que estes valores também estejam presentes:

Nome: content.notify.ontimer
Status: user set
Type: boolean
Value: true

Nome: content.interrupt.parsing
Status: user set
Type: boolean
Value: true

Nome: content.max.tokenizing.time
Status: user set
Type: integer
Value: 30000000 (opcional, este valor deve ser alto)

Nome: content.switch.threshold
Status: user set
Type: integer
Value: 10000 (opcional, deve ser um valor baixo)

Configurando os botões para fechar as abas
Por padrão no firefox 2, todas as abas tem um botão de fechar próprio. Isso come memória pra caramba, principalmente quando se abre 321658 abas ao mesmo tempo. Você tem alguma opções para lidar com isso: Remover completamente todos os botões de fechar e usar o CTRL+F4 para fechar as abas (opção 2), mostrar o botão de fechar apenas na aba atual (opção 0) ou exibir o botão de fechar ao final da barra com as abas no estilo das versões antigas do firefox (opção 3, estéticamente desagradável). A mudança é super perceptível, principalmente quando aternando as abas.
Nome: browser.tabs.closeButtons
Status: user set
Type: interger
Value: 2 (valor opcional, você pode tentar outros valores citados acima) (valor padrão: 1) (valores opcionais: 0, 1, 2, 3)

Abrir a pesquisa do google em outra aba automaticamente
Ótima para os preguiçosos do fórum. :D Se a sua desculpa antes de vir postar coisas óbvias no fórum era a "trabalheira" de ter que abrir uma nova aba e digitar na pesquisa do google o que você queria, agora não tem mais desculpa. Com esta opção, toda vez que for feita uma pesquisa usando a ferramenta de pesquisa do firefox que fica ao lado da barra de endereços, a pesquisa será feita automaticamente em outra aba, sem alterar o conteudo da aba atual.
Nome: browser.search.openintab
Status: user set
Type: boolean
Value: true

Determinar quantas abas podem ser exibidas de uma vez na tela
Pode fazer alguma diferença no desempenho, com essa opção você pode determinar quantas abas podem aparecer ao mesmo tempo na barra antes de aparecer a setinha de scroll no final da barra. Para isso, deve ser determinada a largura mínima aceita para as abas.
Nome: browser.tabs.tabMinWidth
Status: user set
Type: integer
Value: 250 (valor opcional, varia de acordo com a resolução que você usa, a 640x480 estou usando 200)

Você também pode alterar a largura mínima que uma aba deve ter para exibir o botão de fechar nela. Serve apenas se você está exibindo os botões de fechar em todas as abas.
Nome: browser.tabs.tabMinWidth
Status: user set
Type: integer
Value: 140 (valor opcional, só é necessário modificar caso esteja exibindo os botoes de fechar em todas as abas)

Reduzir tamanho do cache na memória
Essa dica torna o firefox muito (muito mesmo) mais leve que por padrão. Normalmente, o firefox guarda um cache em memória para acessar mais rapidamente arquivos estão sendo frequentemente requisitados por certos sites que está visitando. Estes arquivos podem ser por exemplo as imagens do layout aqui do fórum ou nossos avatares.
O problema é que este cache consome memoria ram, e pode gerar aquele consuno excessivo que geralmente se noticia no Windows (mais de 100 mb consumidos apenas pelo firefox com uma ou duas abas abertas). Portanto, é necessário desativar este cache para reduzir o consumo de memória. Isto pode prejudicar um pouco o desempenho na navegação (principalmente em conexao discada), pois certos arquivos deverão ser baixados novamente a cada página que se visita, mas que o consumo de memória diminui, isso sim, e como.
Nome: browser.cache.memory.enable
Status: user set
Type: boolean
Value: false

Ao invés de desativar, você também pode criar o seguinte valor para determinar o tamanho deste cache:
Nome: browser.cache.memory.capacity
Status: user set
Type: integer
Value: -1 (valor opcional, com "-1" o firefox determina o tamanho do cache de acordo com a quantidade de memória física disponível)

Reduzir tamanho do cache na memória para o recurso de avançar/voltar
Mais uma dica quente. O firefox tem um cache separado para guardar as páginas do recurso de avançar/voltar. Este cache é de em média, 4mb POR PÁGINA, é claro que isso varia de acordo com a página. (não sei se este dado confere, peguei do site de referencia)
Por padrão, este ache é determinado de acordo com a memória física disponível, o que pode consumir um bucado de memória, principalmente se você tiver bastante memória no pc e boa parte estiver livre. Você pode diminuir este cache ou desativar.
Nome: browser.sessionhistory.max_total_viewers
Status: user set
Type: integer
Value: 0 (valor opcional, desativa o cache completamente)

Existem outras dicas no site que são mais relacionadas ao desempenho da conexão por exemplo, mas eu preferi me focar no consumo de recursos do navegador. Caso você saiba um pouco de Inglês vale a pena dar uma visitada no site.

Eu recomendo também baixar o Swiftfox, que é uma "distribuição" binária do firefox compilada e optimizada para diversos processadores diferentes. A diferença não chega a ser gritante, mas aqui por exemplo faz alguma diferença.
O importante é saber qual o seu processador e quais as flags de optimização que ele aceita, para então determinar qual a versão que deve ser baixada.

Espero que gostem

Exemplo: http://mozillazine.org/misc/about:config/#edit


Um comentário:

Battisti disse...

realmente o firefox vem configurado para o usuário médio, se você é um havy user então tem que customizar.

Achei o teu post muito bom e acabei descobrindo uma coisa nova e fiz um post no meu site, ai ta o link

http://battisti.wordpress.com/2008/09/13/melhorando-o-desempenho-do-firefox-3-barra-de-endereco/