Pregunta

Como he creado la aplicación que es difícil en los cálculos -> mucho trabajo que hacer, no cálculos muy complejos -> se tarda demasiado tiempo para trabajar hacia fuera y el proceso es sólo al 45% de la CPU. Puedo maximizar alguna manera ?: ir a 90%?

¿Fue útil?

Solución

Si usted tiene una máquina de doble núcleo (que supongo que lo hacen), lo máximo que podía esperar obtener en un solo hilo sería el 50% de uso de CPU.

Para obtener el 90% de uso de CPU, lo más probable que necesite para enhebrar sus cálculos. Esto puede ser muy simple o muy difícil, dependiendo de la naturaleza del algoritmo desea hilo.

Si usted puede romper su conjunto de trabajo en múltiples grupos, recomiendo considerar el uso de la ThreadPool , o potencialmente incluso el tarea paralela Biblioteca, dependiendo de su calendario para el lanzamiento.

Otros consejos

Lo más probable es que tiene una CPU de doble núcleo, y si su aplicación es de un solo subproceso, la CPU máxima que utilizará es de 50% (todos de un mismo núcleo). Con el fin de conseguir un mejor uso, es necesario utilizar múltiples hilos, pero eso también significa averiguar alguna manera de romper los cálculos en pedazos para que puedan ser trabajadas por más de un núcleo.

Comprobar lo siguiente:

  1. ¿Usted lee desde el disco mientras que el cálculo? Si es así, tratar de leer los datos en la memoria antes de los cálculos.
  2. ¿Usted escribe resultados en el disco o en la consola mientras que el cálculo? Si es así, tratar de posponer la escritura hasta que el cálculo ha terminado y entonces escribir.
  3. Si tiene procesador multinúcleo, tratar de crear algoritmo de multiproceso si es posible.

Si sólo tiene un bucle sencillo hacer los cálculos, lo más probable es que su equipo tiene dos núcleos / procesadores. Una aplicación de un solo subproceso en el mejor de utilizar 50% de la CPU.

Es necesario utilizar varios subprocesos para toda la CPU en una máquina multi-núcleo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top