"... las CPU modernas son baratas y se degradarán rápidamente al 100% de la CPU".
No tiene que preocuparse por la "degradación de la CPU" en absoluto. Las CPU modernas no son de menos calidad que en otros tiempos.
Es muy costoso (y se está volviendo más costoso cada dos años) hacer CPU, algunos miles de millones para construir un nuevo fab no son infrecuentes (ver enlace).
http://en.wikipedia.org/wiki/Semiconductor_fabrication_plant
Los costos de producción de una CPU dependen como máximo del no. de unidades producidas. Este es un hecho bien conocido en la economía. Esa es la razón por la que pueden venderse (relativamente) "baratos" después de todo. (Creo que no es necesario un enlace aquí)
Puedo enumerar una serie de razones por las cuales consideraría que las CPU modernas tienden a ser de mayor calidad que en los "tiempos anteriores".
Pero solo lo más importante: Ventajas en las pruebas. La electrónica moderna está "diseñada para pruebas". Ya sea software o hardware, la idea general de valorar las pruebas sobre casi todo lo demás no es tan antigua. Para las CPU, las pruebas incluso se toman para formar los diferentes tipos de precios y frecuencias, por ejemplo, las mejores CPU se venden con las frecuencias más altas. A pesar de eso, los procesadores más baratos a menudo pueden operar con una frecuencia más alta que la vendida; están paralizados solo porque el fabricante quiere vender algunos procesadores de "alto nivel" con precios más altos.
(Por otro lado, por supuesto, hay más errores posibles para un procesador con más de 1.500 millones de transistores como es normal hoy en día que con unos miles de transistores de un procesador de los años setenta. Pero esto no contradice mi respuesta IMO. Procesadores en general tienden a tener muchos errores conocidos, al menos en microcódigo, pero esto no está sujeto aquí).
Hay incluso más razones para no preocuparse por la degradación de la CPU para su programa:
La primera razón es que las CPU modernas disminuyen su frecuencia o aceleración si se calientan demasiado.
Debe quedar claro que si utiliza la CPU 100% 24/7 durante todo el año, normalmente morirá antes de que una CPU solo se use cada dos semanas una hora. Pero eso también es cierto para los automóviles, por cierto. Solo en tales casos pensaría en la utilización de la CPU y el potencial duerme usted mismo.
La segunda razón es que es realmente muy difícil escribir un programa que use el 100% de la CPU del sistema operativo (por ejemplo, en Windows). Además, las CPU modernas (normalmente) tienen al menos 2-4 núcleos. Entonces, un algoritmo tradicional que tiende a usar el 100% de una CPU de un solo núcleo, ahora tiene solo el 50% en una CPU de doble núcleo (simplificado pero visto en escenarios reales).
Además, el sistema operativo tiene el control sobre la CPU y no sobre su programa, por lo que si hay otras aplicaciones con la misma prioridad o más alta (cuál es la predeterminada), su programa solo obtendrá la mayor cantidad de CPU posible, pero las otras aplicaciones no lo harán. morir de hambre. (Por supuesto, esta es solo la teoría simplificada y, por supuesto, la multitarea de Windows, Linux y otros no es perfecta, pero en general lo consideraría cierto).
"Antes tenía la impresión de que era preferible utilizar el 100% de la CPU para una operación intensiva o prolongada ..."
Sí, quédate con esto. Pero, por ejemplo, si espera y realiza un ciclo para otro proceso, en otras palabras, no hace nada, no sería tan malo si Thread.Sleep () algunos milisegundos en ese ciclo, dando tiempo adicional a otros. Si bien no es necesario para un buen sistema operativo multitarea, resolví algunos problemas con esto, por ejemplo, para Windows 2000. (Eso no significa, por supuesto, usar Sleep () en los cálculos, por ejemplo ...