Como posso forçar o Firefox a usar toda a capacidade da CPU?

1

Alguns programas como o Firefox usam apenas até 25% de todo o CPU (apenas 1 thread).

No entanto, alguns programas como o WinRAR usam até 100% de toda a CPU.

Como posso forçar o Firefox a usar toda a capacidade da CPU (como o WinRAR)?

Eu tenho o Windows 7 e a CPU Intel Core-i5 (4 Thread).

    
por EmRa228 12.12.2012 / 20:42

5 respostas

7

Algumas tarefas podem se beneficiar do paralelismo.
Por exemplo, se uma pessoa pode construir uma casa em 9 meses, então (talvez) 9 pessoas podem construir uma casa em um mês.

Mas algumas tarefas não podem se beneficiar do paralelismo.
Por exemplo, uma mulher pode conceber & dar à luz a um bebê em 9 meses, e então conseguir que 9 mulheres produzam um bebê em um mês nunca acontecerá.

O Firefox é essencialmente um programa de resposta de entrada.
Você digita um URL ou clica em um link.
O Firefox emite uma solicitação para recuperar a página da Web de um servidor remoto e aguarda.
Quando a página da Web é entregue, o Firefox processa essa entrada e a processa na tela.
O Firefox aguarda sua próxima ação de entrada.

O Firefox é um programa que não se beneficia (significativamente) do paralelismo.
Então o Firefox (aparentemente) é implementado como um programa single-threaded para usar apenas um núcleo.
Enquanto outros programas, que são computacionais intensivos e implementados como multi-threaded, como o WinRAR, se beneficiam do paralelismo e são executados em vários processadores / núcleos.

    
por 12.12.2012 / 21:46
5

Você não pode, apenas o desenvolvedor do programa pode.

A única opção que você tem é que se você quiser que 100% do uso da CPU esteja aberto 4 cópias do programa, cada cópia terá um núcleo para cima.

    
por 12.12.2012 / 20:48
3

Threads no Windows são executados até que o quanta (time slice) termine, seja bloqueado (por exemplo, fazendo i / o que não tenha sido concluído) ou seja interrompido para executar algo mais prioritário que acabou de ficar pronto.

O Windows permite aumentar a prioridade de um thread, até THREAD_PRIORITY_TIME_CRITICAL . Mas até mesmo os segmentos de maior prioridade são ocasionalmente interrompidos para executar segmentos de baixa prioridade pelo agendador do Windows, que usa reforços aleatórios para evitar uma condição de deadlock chamada inversão de prioridade .

Como ou quando um aplicativo cria novos threads e o que eles fazem é uma decisão de design embutida na lógica interna do programa, não algo que você pode controlar, exceto talvez pela maneira como você usa o aplicativo, por exemplo, abrindo mais guias .

A conclusão é que, se você está se perguntando o que é necessário para maximizar o uso da CPU o máximo possível, a resposta é uma atividade intensiva da CPU com tantos segmentos quanto os processadores, não bloqueia em i / o e é executado com maior prioridade (por exemplo, sendo apenas o aplicativo em primeiro plano) do que outras tarefas.

    
por 12.12.2012 / 21:04
1

Não. Threading é uma decisão tomada pelo desenvolvedor do aplicativo e só pode ser usada (ou pelo menos ser benéfica) em certos casos. Além disso, a CPU é apenas um componente que pode estar demorando tempo de execução e, como tal, se ela estiver aguardando atualizações em disco ou RAM de alta frequência, a CPU ainda funcionará exatamente como você descreveu, apesar de o aplicativo ser multithread e chip multicore.

    
por 12.12.2012 / 20:50
1
O

Mozilla Firefox é baseado em um software que foi escrito antes que as CPUs com múltiplos núcleos se tornassem populares. Como tal, ele ainda usa um único processo com um complicado sistema de threading que não é fácil de dividir em programas separados. Você poderia votar e participar do Eletrólise projeto:

The goal of the project is to run web content in a separate process from Firefox itself. The two major advantages of this model are security and performance. Security would improve because the content processes could be sandboxed (although sandboxing the content processes is a separate project from Electrolysis). Performance would improve because the browser UI would not be affected by poor performance of content code (be it layout or JavaScript). Also, content processes could be isolated from each other, which would have similar security and performance benefits.

Although the Gecko platform supports multiple processes, the Firefox frontend is not designed to use them. Work to make the frontend (including addons) support multiple processes was begun in early 2013. The project roadmap has more details.

Microsoft Internet Explorer e Google Chrome já pode processar várias guias de uma só vez usando a CPU completa em vez de mexer e tropeçar nos tópicos. Muitas vezes, o Firefox inteiro congela devido a coisas triviais como uma única guia que renderiza alguns flocos de neve em JavaScript .

    
por 17.07.2014 / 16:31