Pergunta

Como eu criei o aplicativo que é difícil em cálculos -> muito trabalho a fazer, e não cálculos muito complexos -> leva muito tempo para trabalhar com isso e o processo é apenas com 45% da CPU. Posso maximizá-lo de alguma forma ?: para ir para 90%?

Foi útil?

Solução

Se você tem uma máquina dual core (que eu estou supondo que você faça), o máximo que você poderia esperar para chegar em um único segmento seria o uso da CPU 50%.

Para obter o uso da CPU 90%, você será mais provável necessidade de enfiar seus cálculos. Isso pode ser muito simples ou muito difícil, dependendo da natureza do algoritmo que você quer enfiar.

Se você pode quebrar o seu conjunto de trabalho em vários grupos, eu recomendaria considerando usando o ThreadPool , ou potencialmente mesmo a paralela de tarefas Biblioteca, dependendo o seu timing para o lançamento.

Outras dicas

Mais do que provavelmente você tem um CPU dual core, e se o seu aplicativo é único segmento, o CPU máximo ele vai usar é de 50% (todos de um mesmo núcleo). A fim de obter um melhor uso, você precisa utilizar vários segmentos, mas isso também significa descobrir alguma maneira de quebrar seus cálculos em pedaços, para que possam ser trabalhado por mais de um núcleo.

Verifique o seguinte:

  1. Você lê a partir do disco, enquanto o cálculo? Se assim for, tente ler os dados na memória antes cálculos.
  2. Você escreve resultados em disco ou console, enquanto o cálculo? Se assim for, tente adiar escrevendo até cálculo é longo e, em seguida, fazer a escrita.
  3. Se você tem processador multicore, tentar criar algoritmo multithreaded se possível.

Se você só tem um loop simples fazendo os cálculos, então provavelmente o seu computador tem dois núcleos / processadores. A aplicação de rosca única vontade na melhor utilização de 50% da CPU.

Você precisa de vários segmentos de usar toda a CPU em uma máquina multi-core.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top