Eu só deparei com essa pergunta hoje e espero que esta não seja uma resposta tardia, mas as respostas curtas são sim (para sua primeira pergunta "Eu descobri que tanto o Safari quanto o Firefox usam uma quantidade muito alta de CPU durante os downloads" >200%
de uso da CPU), alguém pode explicar por que isso acontece? ") e sim (para sua pergunta de comentário" Uma porcentagem maior que 100%
significa que está usando vários núcleos para esse processo? ").
A breve explicação é que o seu Mac contém um processador multi-core - eu estou supondo um mínimo de 2
dado que você está executando o OS X 10.8 - que suporta hyperthreading , e isso significa que cada núcleo físico (uma CPU física em si) apresenta vários núcleos" lógicos "para o OS X, que ele trata como CPUs lógicas independentes. Um processo pode usar até 100% de cada núcleo lógico, portanto, n
cores lógicas significa um máximo de n x 100%
de uso da CPU por processo. Daí o seu Monitor de Atividades (como o Gerenciador de Tarefas no Windows) mostrando as barras de uso da CPU para cada um desses núcleos lógicos (desde que sejam <= 4
, de acordo com a documentação técnica da Apple) e você está obtendo leituras como 157%
para o Firefox, etc. Isso não é não incomum e provavelmente normal se você tiver vários downloads, aplicativos, jogos, etc. sendo executados ao mesmo tempo. Mas observe: diferentes processos de aplicativos residem em diferentes partes do espaço de memória virtual do usuário, por isso também é possível ver vários processos de aplicativos que têm >100%
de uso da CPU ao mesmo tempo, por exemplo, Firefox 157%
e iTunes 200%
etc.
É impossível ver o uso de >100%
da CPU em um processo em um sistema de CPU de núcleo único, a menos que a ferramenta de relatório que você está usando esteja com defeito. O Firefox provavelmente gera um thread para cada download (se você tiver vários downloads simultâneos), além de vários outros tópicos para guias, renderização etc. e outras coisas acontecendo, e sua leitura de 157%
para o processo claramente significa algum desses encadeamentos estavam sendo executados em pelo menos dois núcleos lógicos diferentes ao mesmo tempo. Uma leitura de 296%
indicaria pelo menos três núcleos sendo usados etc. O uso da CPU para um processo em um sistema multi-core / multi-thread é uma agregação dos usos da CPU para todos os encadeamentos executados dentro desse processo.
Nota: em um nível prático, você pode consultar isto se seus problemas de download forem específicos do Firefox ou ocorrerem repetidamente.
Você pode encontrar informações sobre o número de núcleos físicos / lógicos no seu computador usando o comando sysctl
(na API do BSD se estiver interessado) - se você executar o seguinte comando no seu aplicativo terminal:
$ sysctl -e hw | grep "cpu="
você deve ver algo assim (observe os comentários que inseri, não parte da saída)
hw.ncpu=4 # no. of cores available to the kernel
hw.activecpu=4 # no. of logical cores actively being used by the kernel
hw.physicalcpu=2 # no. of physical cores
hw.logicalcpu=4 # no. of logical cores