«... современные процессоры дешевы и быстро деградируют при 100% процессоре».
Вам не нужно беспокоиться о «деградации процессора» вообще. Современные процессоры не менее качественны, чем в прежние времена.
Это очень дорого (и дорожает каждые несколько лет) , чтобы сделать процессоры, несколько миллиардов , чтобы построить новый ФАБ не редкость (ссылка).
http://en.wikipedia.org/wiki/Semiconductor_fabrication_plant
Затраты на производство процессора зависят не больше. произведенных единиц. Это хорошо известный в экономике факт. Вот почему они могут быть проданы (относительно) "дешево" в конце концов. (Я думаю, здесь нет необходимости в ссылке)
Я могу перечислить ряд причин, по которым я считаю, что современные процессоры имеют тенденцию быть более качественными, чем в «прежние времена».
Но только самое главное: преимущества в тестировании. Современная электроника «предназначена для испытаний». Будь то программное или аппаратное обеспечение, общее представление о том, как оценивать тесты почти во всем остальном, не так уж и старо. Для процессоров даже проводятся тесты для формирования различных ценовых и частотных типов, например, лучшие процессоры продаются с самыми высокими частотами. Несмотря на это, более дешевые процессоры очень часто способны работать с более высокой частотой, чем проданные, - они наносят ущерб только по той причине, что производитель хочет продавать некоторые процессоры «высокого уровня» по более высоким ценам.
(С другой стороны, конечно, в настоящее время возможно больше ошибок для процессора с более чем 1,5 миллиардами транзисторов в обычном режиме, чем с несколькими тысячами транзисторов процессора семидесятых. Но это не противоречит моему ответу IMO. Процессоры в целом как правило, имеет много известных ошибок, по крайней мере, в микрокоде, но это не является предметом здесь.)
Есть еще больше причин не беспокоиться о деградации процессора для вашей программы:
Первая причина заключается в том, что современные процессоры снижают частоту или дроссель, если они становятся слишком горячими.
Должно быть ясно, что если вы используете CPU 100% 24/7 в течение всего года, он обычно умирает раньше, чем CPU, используемый только каждую вторую неделю один час. Но это верно и для автомобилей, кстати. Только в таких случаях я бы подумал об использовании процессора и возможном сне.
Вторая причина в том, что на самом деле очень сложно написать программу, которая использует 100% ЦП от ОС (например, в Windows). Кроме того, современные процессоры (обычно) имеют как минимум 2-4 ядра. Таким образом, традиционный алгоритм, который имеет тенденцию использовать 100% одноядерного ЦП, теперь имеет только 50% для двухъядерного ЦП (упрощенный, но наблюдаемый в реальных сценариях).
Более того, операционная система контролирует ЦП, а не вашу программу, поэтому, если есть другие приложения с таким же или более высоким приоритетом (что является значением по умолчанию), ваша программа получает только столько ЦП, сколько возможно, но другие приложения не будут голодать. (Конечно, это только упрощенная теория, и, конечно, многозадачность Windows, Linux и других не идеальна, но в целом я бы посчитал это верным).
«Ранее у меня сложилось впечатление, что 100% загрузка ЦП предпочтительнее для интенсивной или длительной работы».
Да, оставайся с этим. Но, например, если вы ожидаете и зацикливаетесь на другом процессе, другими словами, ничего не делая, было бы неплохо, если бы вы выполняли Thread.Sleep () несколько миллисекунд в этом цикле, предоставляя дополнительное время другим. В то время как это не является необходимым для хорошей многозадачной ОС, я решил некоторые проблемы с этим, например, для Windows 2000. (Это, конечно, не означает использование Sleep () в вычислениях, например ..)