".. 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 tiempos anteriores.
Es muy costoso (y se está volviendo más caro cada dos años) para hacer CPU, algunos miles de millones para construir una nueva fábrica no son infrecuentes (ver enlace).
enlace
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 ser vendidos (relativamente) "baratos" después de todo.
(Creo que no es necesario ningún enlace aquí)
Puedo enumerar una serie de razones por las que consideraría que las CPU modernas tienden a ser de más calidad que en "tiempos anteriores".
Pero solo lo más importante: Ventajas en las pruebas. La electrónica moderna está "diseñada para prueba". Ya sea software o hardware, la amplia visión de valorar las pruebas en casi todo lo demás, no es tan antigua.
Para las CPU, incluso se toman las pruebas para determinar los diferentes tipos de precios y frecuencias, por ejemplo, Las mejores CPUs se venden con las frecuencias más altas. A pesar de eso, los procesadores más baratos a menudo pueden operar con mayor frecuencia que los vendidos; 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 en la actualidad que con algunos miles de transistores de un procesador de los años 70. Pero esto no contradice mi respuesta, OMI. Los procesadores en general tienden a tener muchos errores conocidos, al menos en microcódigo, pero esto no está sujeto aquí.)
Incluso hay más razones para no preocuparse por la degradación de la CPU de su programa:
-
La primera razón es que las CPU modernas disminuyen su frecuencia o aceleran, si se están calentando demasiado.
Debe quedar claro que si utiliza la CPU 100% las 24 horas del día, los 7 días de la semana, todo el año, normalmente morirá antes que una CPU que se usa solo cada segunda semana, una hora. Pero eso también es cierto para los autos, por cierto. Solo en tales casos, yo mismo pensaría en la utilización de la CPU y el potencial de suspensión.
-
La segunda razón es que realmente es muy difícil escribir un programa que use el 100% de la CPU del SO (por ejemplo, en Windows). Además, las CPU modernas (normalmente) tienen al menos 2-4 núcleos. Por lo tanto, 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 o mayor prioridad (cuál es el valor predeterminado), su programa solo obtendrá la mayor cantidad de CPU posible. Pero las otras aplicaciones no morirán 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 de verdad).
"Anteriormente tenía la impresión de que el 100% de uso de la CPU era
preferible para una operación intensiva o larga .. "
Sí, quédate con esto. Pero, por ejemplo, si espera y realiza un bucle para otro proceso, en otras palabras, no hace nada, no sería tan malo si Thread.Sleep () durara unos milisegundos en ese bucle, dándole tiempo adicional a los demás.
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 cálculos, por ejemplo ...