"Le CPU moderne sono economiche e si degradano rapidamente al 100% della CPU".
Non devi preoccuparti del "degrado della CPU". Le CPU moderne non sono di qualità inferiore rispetto ai tempi precedenti.
È molto costoso (e sta diventando sempre più costoso ogni due anni) produrre CPU, alcuni miliardi per costruire un nuovo fab non sono rari (vedi link).
http://en.wikipedia.org/wiki/Semiconductor_fabrication_plant
I costi di produzione di una CPU dipendono al massimo dal n. di unità prodotte. Questo è un fatto ben noto in economia. Questo è il motivo per cui possono essere venduti (relativamente) "economici" dopo tutto. (Penso, nessun collegamento necessario qui)
Sono in grado di elencare una serie di motivi per cui considero le CPU moderne tendenzialmente più di qualità rispetto ai "tempi passati".
Ma solo il più importante: vantaggi nei test. L'elettronica moderna è "progettata per il test". Che si tratti di software o hardware, l'ampia visione di valutare i test su quasi tutto il resto, non è così vecchia. Per le CPU, vengono anche eseguiti i test per formare i diversi tipi di prezzo e frequenza, ad esempio le migliori CPU vengono vendute con le frequenze più alte. Nonostante ciò, i processori più economici sono molto spesso in grado di funzionare con una frequenza superiore rispetto alle vendite, sono paralizzati solo per il motivo che il produttore vuole vendere alcuni processori "di alto livello" con prezzi più alti.
(D'altra parte, ovviamente ci sono più errori possibili per un processore con oltre 1,5 miliardi di transistor come al giorno d'oggi normale rispetto ad alcune migliaia di transistor di un processore degli anni Settanta. Ma questo non contraddice la mia risposta IMO. Processori in generale tendono ad avere molti errori noti, almeno nel microcodice, ma questo non è soggetto qui.)
Esistono ancora più motivi per non preoccuparti della degressione della CPU per il tuo programma:
Il primo motivo è che le CPU moderne riducono la frequenza o l'acceleratore, se si surriscaldano.
Dovrebbe essere chiaro che se si utilizza la CPU al 100% 24 ore su 24, 7 giorni su 7, tutto l'anno morirà normalmente prima di una CPU utilizzata solo ogni due settimane un'ora. Ma questo vale anche per le auto. Solo in questi casi penserei all'utilizzo della CPU e al potenziale sonno.
Il secondo motivo è che è davvero molto difficile scrivere un programma che utilizza il 100% della CPU dal sistema operativo (ad esempio in Windows). Inoltre, le moderne CPU (normalmente) hanno almeno 2-4 core. Quindi un algoritmo tradizionale che tende a utilizzare il 100% di una CPU single core, ora ha solo il 50% su una CPU dual core (semplificata ma vista in scenari reali).
Inoltre il sistema operativo ha il controllo sulla CPU e non sul tuo programma, quindi se ci sono altre applicazioni con la stessa o maggiore priorità (qual è l'impostazione predefinita), il tuo programma sta ottenendo solo quanta più CPU possibile, ma le altre applicazioni non lo faranno morire di fame. (Naturalmente questa è solo la teoria semplificata, e ovviamente il multitasking di Windows, Linux e altri non è perfetto, ma nel complesso lo considererei per davvero).
"In precedenza avevo l'impressione che l'utilizzo della CPU al 100% fosse preferibile per un'operazione intensiva o lunga .."
Sì, resta con questo. Ma per esempio, se stai aspettando e eseguendo il loop per un altro processo, in altre parole senza fare nulla, non sarebbe troppo male se Thread.Sleep () alcuni millisecondi in quel loop, dando tempo extra ad altri. Considerando che non è necessario per un buon sistema operativo multitasking, ho risolto alcuni problemi con questo, ad esempio per Windows 2000. (Ciò NON significa ovviamente usare Sleep () nei calcoli per esempio ..