„Nowoczesne procesory są tanie i szybko ulegają degradacji przy 100% procesorze”.
Nie musisz się w ogóle martwić o „degradację procesora”. Nowoczesne procesory nie są gorszej jakości niż w dawnych czasach.
Wytwarzanie procesorów jest bardzo drogie (i staje się coraz droższe co kilka lat), niektóre miliardy na budowę nowej fabryki nie są rzadkością (patrz link).
http://en.wikipedia.org/wiki/Semiconductor_fabrication_plant
Koszty produkcji procesora zależą co najwyżej od nie. wyprodukowanych jednostek. Jest to dobrze znany fakt w gospodarce. Właśnie dlatego mogą być sprzedawane (relatywnie) „tanie”. (Myślę, że link nie jest konieczny)
Mogę wymienić wiele powodów, dla których uważam, że współczesne procesory mają wyższą jakość niż w „dawnych czasach”.
Ale tylko najważniejsze: zalety w testowaniu. Nowoczesna elektronika jest „zaprojektowana do testów”. Niezależnie od tego, czy chodzi o oprogramowanie czy sprzęt, szeroki wachlarz wyceny testów w porównaniu do prawie wszystkiego innego nie jest tak stary. W przypadku procesorów są nawet przeprowadzane testy formowania różnych rodzajów cen i częstotliwości, np. Najlepsze procesory sprzedawane są z najwyższymi częstotliwościami. Mimo to tańsze procesory bardzo często są w stanie pracować z wyższą częstotliwością niż sprzedawane - są sparaliżowane tylko dlatego, że producent chce sprzedawać niektóre procesory „wysokiego poziomu” o wyższych cenach.
(Z drugiej strony, oczywiście jest więcej możliwych błędów dla procesora z ponad 1,5 miliardem tranzystorów jak zwykle w dzisiejszych czasach niż z tysiącem tranzystorów procesora z lat siedemdziesiątych. Ale to nie stoi w sprzeczności z moją odpowiedzią IMO. Procesory ogólnie zwykle mają wiele znanych błędów, przynajmniej w mikrokodzie, ale nie jest to tutaj przedmiotem).
Jest jeszcze więcej powodów, aby nie martwić się degradacją procesora w twoim programie:
Pierwszym powodem jest to, że współczesne procesory zmniejszają częstotliwość lub przepustnicę, jeśli stają się zbyt gorące.
Powinno być jasne, że jeśli wykorzystasz procesor w 100% 24/7 przez cały rok, zwykle umrze wcześniej niż procesor używany tylko co drugi tydzień przez godzinę. Nawiasem mówiąc, dotyczy to również samochodów. Tylko w takich przypadkach myślałem o wykorzystaniu procesora i potencjalnym śnie.
Drugim powodem jest to, że naprawdę bardzo trudno jest napisać program, który wykorzystuje 100% procesora z systemu operacyjnego (np. W systemie Windows). Poza tym nowoczesne procesory (zwykle) mają co najmniej 2-4 rdzenie. Tak więc tradycyjny algorytm, który zwykle wykorzystuje 100% procesora jednordzeniowego, ma teraz tylko 50% na procesorze dwurdzeniowym (uproszczony, ale widoczny w rzeczywistych scenariuszach).
Co więcej, system operacyjny kontroluje procesor, a nie program, więc jeśli istnieją inne aplikacje o tym samym lub wyższym priorytecie (co jest ustawieniem domyślnym), twój program otrzymuje tylko tyle procesora, ile to możliwe, ale inne aplikacje nie będą głodować. (Oczywiście jest to tylko uproszczona teoria i oczywiście wielozadaniowość systemów Windows, Linux i innych nie jest idealna, ale ogólnie uważam, że to prawda).
„Wcześniej miałem wrażenie, że 100% użycie procesora jest lepsze w przypadku intensywnej lub długiej operacji.”
Tak, zostań przy tym. Ale na przykład, jeśli czekasz i zapętlasz inny proces, innymi słowy nic nie robiąc, nie byłoby źle, gdybyś używał Thread.Sleep () przez kilka milisekund w tej pętli, dając dodatkowy czas innym. Chociaż nie jest to konieczne dla dobrego systemu wielozadaniowego, rozwiązałem niektóre problemy z tym np. Dla Windows 2000. (To NIE znaczy oczywiście, że używasz Sleep () w obliczeniach na przykład ..