A utilização da CPU do Windows 8.1 nunca excede cerca de 30%

2

Estou escrevendo um aplicativo C ++ usando o Visual Studio 2013. O aplicativo itera através de uma imagem fazendo algumas análises complicadas. A análise não é particularmente lento, mas a fim de testar a eficiência código que estou executando a análise (digamos) 100 vezes e ver quanto tempo leva. Em seguida, modifico o código, executo novamente o teste e vejo se há uma melhoria (ou degradação) no desempenho.

O problema é que, enquanto eu tenho um poderoso i5 4-core (i5-4200U @ 1.6 GHz para ser específico) e uma abundância de RAM, a utilização geral da CPU nunca excede cerca de 30%. Meu processo nunca parece ir além de 29,5%. Eu tentei definir a classe de prioridade do meu aplicativo como "Alta" e isso não ajuda. Há zero de disco e acesso à rede, tudo na memória (e cerca de 5 GB de memória de sobra).

Isso é alguma configuração secreta do Windows 8.1 para limitar a quantidade de CPU que um processo pode levar (a fim de preservar o desempenho)? Posso alterar isso programaticamente ou por meio de algum miniaplicativo do Painel de controle (talvez definir um limite de uso de CPU mais alto)?

    
por AlainD 08.03.2015 / 15:27

1 resposta

4

Seu aplicativo provavelmente é de segmentação única. Por isso, pode usar apenas um núcleo de CPU.
Como você tem 4 núcleos de CPU, ele está usando 1/4 da CPU, o que significa aproximadamente 25%.

Para usar sua CPU em 100%, você precisará modificar seu aplicativo para usar multithreading ( se possível). Nem todos os problemas podem ser resolvidos de forma multi-threaded. Então, depende do que você está realmente fazendo.

    
por 08.03.2015 / 15:34