Warum sollte Ihr Code nicht 100% CPU verwenden? [geschlossen]


42

Ich spreche speziell von einem C # .NET 4-Programm, das unter Windows XP oder höher ausgeführt wird, aber auch allgemeine Antworten sind akzeptabel.

Nehmen Sie ein bereits optimiertes und effizientes Programm an. Das Problem liegt hier ausschließlich an den Auswirkungen einer hohen CPU-Auslastung auf die Hardware und daran, ob ein stark ausgelastetes Programm gedrosselt werden sollte, um den Verschleiß zu verringern, und nicht daran, ob meine Implementierung effizient ist.

Ein Kollege schlug heute vor, dass ich bei meinen Datenladeprozessen keine 100% ige CPU-Auslastung anstreben sollte, da "moderne CPUs billig sind und sich bei 100% CPU schnell verschlechtern".

Ist das wahr? Und wenn ja, warum? Früher hatte ich den Eindruck, dass eine 100% ige CPU-Auslastung für einen intensiven oder langen Betrieb vorzuziehen war, und ich konnte auch keine seriösen Quellen zu diesem Thema finden.


6
Unter der Annahme, dass nur Ihre Anwendung auf der Box ausgeführt wird, ist die 100% ige CPU-Auslastung streng genommen nicht schlecht, sondern weist möglicherweise darauf hin, dass es etwas gibt, das Sie möglicherweise besser machen könnten. Ich habe nicht viel mit Desktop-Apps gearbeitet, aber für Web-Apps, zum Beispiel, habe ich noch nie eine Anwendung gesehen, die die CPU-Auslastung maximiert hat und der Code, der diese Zyklen verwendet, war wirklich optimal. Es stimmt immer etwas nicht. Dies liegt jedoch daran, dass im Web häufig E / A-Vorgänge ausgeführt werden, sodass ein CPU-Problem unangemessen zu sein scheint. Ich bin sicher, dass Ihre App anders ist.
Brandon

7
Auch unterschiedliche Betriebssysteme behandeln diesen Fall unterschiedlich. Meine Windows-Box läuft zum Beispiel schlecht, wenn die CPU zu 100% ausgelastet ist. Auf der anderen Seite habe ich einen Linux-Server gesehen, der mehrere Tage ohne Unterbrechung mit 100% CPU lief, und es war in Ordnung. (Obwohl wir ein paar Tage später ein
Brandon

17
Sie möchten so schnell wie möglich arbeiten und dabei nicht übermäßig verschwenden. Wenn Sie 100% der CPU für nützliche Berechnungen verwenden, ist dies gut. Wenn Sie 100% der CPU in unnützen Schleifen verwenden, ist dies eine Verschwendung.
NWP

10
Sie haben alles bezahlt. Nutze alles.
Brian Hooper

4
Diese Frage scheint nicht zum Thema zu gehören, da es um Elektronik und nicht um Programmierung geht.

Antworten:


59

Wenn die Kühlung nicht ausreicht, kann es zu einer Überhitzung der CPU kommen. Aber alle (zumindest alle modernen PC-CPUs) verfügen über verschiedene Wärmeschutzmechanismen, die die Taktfrequenz drosseln oder letztendlich abschalten.

Ja, auf einem staubigen Laptop kann eine 100% ige CPU-Auslastung vorübergehende Probleme verursachen, aber nichts wird kaputt gehen oder sich verschlechtern (was auch immer das bedeutet).

Bei CPU-gebundenen Problemen ist eine CPU-Auslastung von 100% der richtige Weg.

Die Reaktionsfähigkeit der Anwendung (UI) unterscheidet sich von der CPU-Auslastung. Es ist durchaus möglich, dass eine Anwendung nicht mehr reagiert und 1% der CPU verwendet, oder dass eine ansprechende Anwendung 100% der CPU verwendet. Die Reaktionsfähigkeit der Benutzeroberfläche hängt vom Arbeitsaufwand im Benutzeroberflächenthread und der Priorität des Benutzeroberflächenthreads im Vergleich zu anderen Threads ab.


3
und das Betriebssystem kann auch eine Abkühlphase Scheibe für die Kerne erzwingen
Ratsche Freak

8
Ich denke, die eigentliche Antwort ist, dass die meisten Prozesse nicht an die CPU gebunden sind, sondern an die E / A. Deshalb leben wir im Allgemeinen in einer Welt, in der die CPU-Auslastung zu 100% abnorm ist, zumindest für "allgemeine / allgemeine" Berechnungen.
Windfinder

4
@windfinder Ich würde sagen, für "Computation" ist das Erreichen von 100% ziemlich Standard, aber nur solange "Computation" etwas mit Mathematik zu tun hat :) Zum Beispiel ist das Verarbeiten von MySQL-Abfragen für mich keine Berechnung;)
yo '

@tohecz - In dem Sinne, wie ich es benutzt habe, bedeutet Berechnung nur CPU-Zeit. Wir streiten hier nur um die Terminologie, für mich ist alles, was die CPU tut, Berechnung (es "rechnet"). Als Datenwissenschaftler würde ich auch sagen, dass die meisten Mathematiken auch I / O-gebunden sind (jenseits der trivialsten Mathematik). Ein Großteil Ihrer Zeit in der Welt der Mathematik besteht darin, einen Weg zu finden, um Daten effizient zu komprimieren / auf Ihren Prozessor zu streamen, um die CPU-Auslastung so hoch wie möglich zu halten (wobei natürlich die Ineffizienz des Cache minimiert wird).
Windfinder

4
Anekdote zu "staubigen Laptops": Für meine Masterarbeitsexperimente habe ich einen damals 4-jährigen Laptop als Läufer verwendet. Rund um die Uhr 100% CPU-Auslastung für ca. 3 Monate . Danach wurde der Laptop für weitere 4 Jahre in die Serverrolle verbannt, bevor er schließlich den Geist aufgab (wahrscheinlich aufgrund eines bereits beschädigten Grafikproblems).
mikołak

15

Windows-Programme (Winforms / WPF) sollten jederzeit reagieren. Mit einer naiven Implementierung eines Prozesses, der zu 100% CPU-Ressourcen nutzt, ist es allzu einfach, Ihr Programm oder sogar Ihr System träge und ins Stocken geraten zu lassen.

Bei einer guten Implementierung (z. B. Verwendung eines separaten Threads mit niedrigerer Priorität) sollte dies kein Problem darstellen.

Sie sollten sich keine Sorgen machen, dass Ihre CPU früher kaputt geht.


3
Natürlich sollten Programme, die Langzeitberechnungen durchführen, wahrscheinlich keine winforms / wpf-Anwendungen sein, sondern Batch-Jobs ohne Benutzeroberfläche. Das macht sie einfacher, da sie sich nicht um einen reaktionsfähigen UI-Thread kümmern müssen und sie über den Taskplaner und dergleichen starten können. Wenn die Benutzeroberfläche benötigt wird, würde ich dennoch empfehlen, die Starteranwendung in einem vollständig separaten Prozess auszuführen (das kann recht einfach reagieren; es reicht aus, um das Warten auf Statusnachrichten vom Stapeljob nicht zu blockieren).
Jan Hudec

15

Es ist im Allgemeinen nichts Falsches an einem Programm mit 100% CPU, während es tatsächlich nützliche Arbeit leistet und keine Zeit von etwas Wichtigerem wegnimmt . Wenn eine bestimmte Hardwareplattform z. B. nur eine Sekunde lang 100% CPU ununterbrochen nutzen kann, bevor sie auf 50% drosseln muss, um eine Überhitzung zu vermeiden, ist es im Allgemeinen besser, wenn eine Anwendung nützliche Arbeit leistetum so schnell wie möglich zu laufen und die CPU oder das Betriebssystem die nötige Drosselung ausführen zu lassen, damit eine Anwendung erraten kann, wie schnell sie laufen sollte. Wenn eine Anwendung oder ein Thread Arbeiten mit niedriger Priorität ausführen muss, die nützlich, aber zu keinem Zeitpunkt kritisch sind, kann es für das Betriebssystem hilfreich sein, die CPU-Auslastung für Aufgaben mit niedriger Priorität auf 50% zu beschränken, damit die CPU dies tun kann, wenn dies erforderlich ist Etwas schnell wird es bereit sein, für eine Sekunde zu "sprinten", aber die Anwendung sollte sich nicht um solche Dinge kümmern, außer eine niedrige Thread-Priorität anzufordern.

Die größten Situationen, in denen es schlecht ist, 100% CPU zu nutzen, sind entweder:

  • Die Anwendung wartet auf ein Ereignis, das nicht durch ständige Abfragen beschleunigt wird [und möglicherweise verzögert wird, wenn der Aufwand für die Überprüfung, ob die Aufgabe erledigt ist, CPU-Ressourcen belegt, die ansonsten für die Ausführung der Aufgabe aufgewendet werden könnten ].

  • Die Anwendung zeichnet die Anzeige übermäßig oft neu. Die Definition von "übermäßig häufig" hängt in gewissem Maße von der Art des Anzeigegeräts und dem angezeigten Inhalt ab. Wenn die Anzeigehardware 120 fps anzeigen kann, kann es vorkommen, dass Animationen mit 120 fps ohne Bewegungsunschärfe angezeigt werden, bei niedrigeren Bildraten jedoch nicht sauber angezeigt werden können, ohne sie hinzuzufügen. Wenn das Rendern eines Frames mit Bewegungsunschärfe viel länger dauern würde als das Rendern ohne, dann könnte das Rendern mit 120 fps auf Hardware, die dies unterstützt, nicht teurer sein als das Rendern mit einer langsameren Framerate mit Bewegungsunschärfe. [Einfache Situation: Ein Rad mit 29 Speichen, das sich mit einer Umdrehung pro Sekunde dreht. Bei 120 fps scheint sich das Rad mit der richtigen Geschwindigkeit und Richtung zu drehen. bei 60 fps

Ersteres ist deutlich als schlecht zu erkennen. Der zweite ist etwas subtiler. Wenn man auf eine mobile Plattform abzielt, kann es in einigen Fällen wünschenswert sein, Benutzern die Auswahl der gewünschten Animationsbildrate zu ermöglichen, da sich einige Benutzer möglicherweise keine Sorgen um die Akkulaufzeit machen, aber die beste Animationsqualität wünschen, während andere eine geringere Qualität akzeptieren würden Animation im Austausch für eine bessere Akkulaufzeit. Anstatt die Anwendung versuchen zu lassen, zu erraten, wo der Kompromiss sein sollte, kann es hilfreich sein, ihn vom Benutzer anpassen zu lassen.


10

"Moderne CPUs sind billig und werden sich bei 100% CPU schnell verschlechtern".

Ich glaube nicht, dass irgendjemand den "Degrade" -Teil dieser Frage angesprochen hat. ICs werden schlechter, wenn die Die-Temperatur die Herstellergrenzen überschreitet. ICs sind normalerweise für einen Betrieb bis 125 ° C ausgelegt, obwohl jede Erhöhung um 10 ° C die Lebensdauer um 50% verkürzt.

Prozessoren hatten nicht immer eine Wärmeregulierung. Dann hatten einige AMD Durons Probleme (angeblich war es möglich, eines zu zerstören, wenn es ohne Kühlkörper betrieben wurde). Jetzt verfügen alle PC-Prozessoren über eingebaute Temperatursensoren, die in die CPU-Uhr zurückspeisen und die Uhr verlangsamen, um Schäden zu vermeiden. Sie können also feststellen, dass Ihr Programm 100% der verfügbaren CPU verwendet, die CPU jedoch nur mit 75% ihrer Nenndrehzahl läuft, da die Kühlung unzureichend ist.

Innerhalb eines Anwenderprogramms ist nicht der richtige Ort, um zu versuchen, den CPU-Verbrauch zu verwalten. Im Allgemeinen sollte Ihr Programm abwechselnd so schnell wie möglich arbeiten und angehalten auf Eingaben oder Festplattenzugriff warten. Sie sollten es nach Möglichkeit vermeiden, zu lange zu warten und die Sperre zu aktivieren. Dies geschieht jedoch aus Höflichkeit für den Rest des Systems.

Sowohl Windows als auch Linux verfügen über CPU- "Govenor" -Systeme, die Leistung und Wärmemanagement gewährleisten. Da dies auf Betriebssystemebene erfolgt, kann der gesamte CPU-Verbrauch des Systems berücksichtigt werden. Es liegt in der Verantwortung des Betriebssystems, die Hardware zu verwalten und zu verhindern, dass Benutzerprogramme sie missbrauchen. Es liegt in der Verantwortung der Hardware Eigentümer die Fans sauber und funktionstüchtig, und dem Hersteller zu halten ausreichend Kühlkörper und Lüfter in erster Linie zu passen.

Es gibt einige Fälle, in denen Geräte nicht ausreichend gekühlt werden, aber eine Flut von Rückläufern lehrt die Hersteller, dies nicht zu tun.


Das Video des explodierenden AMD Duron ist wahrscheinlich eine Fälschung. Ihre Aussage zur Wärmeregulierung ist weiterhin gültig.
Sam

1
Hm, ich habe es rausgenommen, da ich ziemlich viele Behauptungen auf Google sehe, dass es eine Fälschung war.
pjc50

3
Es ist möglich, eine moderne Intel Core-CPU zu überhitzen, indem Sie Code schreiben, der die SSE-Engine antreibt und die CPU-Drosselung im Betriebssystem absichtlich deaktiviert. Es scheint, dass Hersteller (sogar Intel selbst) thermische Anforderungen basierend auf der Annahme entwerfen, dass es nicht normal (möglich?) Ist, die CPU zu zwingen, die beanspruchten 4 Flops pro Taktzyklus die ganze Zeit zu berechnen. Wenn es jemandem tatsächlich gelingt, Code zu schreiben, der dies tut, kommt es zu einer Überhitzung seiner CPU. Siehe: stackoverflow.com/questions/8389648/…
slebetman

^ "angeblich war es möglich, einen zu zerstören, wenn er ohne Kühlkörper lief" - ich habe "persönlich bestätigt", dass es möglich war, frühere K7 ohne Kühlkörper zu zerstören .. ; Das ist wie, fast 2 Jahrzehnte zurück? !!
user2864740

3

Um den Verfechter des Teufels zu spielen: In gewisser Weise kann ein Programm, das nicht zu 100% ausgelastet ist, zu einem schlechteren Verschleiß führen: Wenn es nicht während eines Tastenanschlags angehalten wird, wird es wahrscheinlich die meiste Zeit angehalten, um auf Festplatten-E / A zu warten. Und bei Platten handelt es sich (noch immer) um große mechanische Geräte, die beim Bewegen mechanischem Verschleiß oder der Gefahr von Erschütterungen / Kreiseleffekten ausgesetzt sind, ganz zu schweigen vom Stromverbrauch.


In diesem Fall handelt es sich einfach um einen komplexen Vorgang für einen großen (im Speicher befindlichen) Datensatz, der einige Minuten dauert. Aber es ist definitiv ein guter Punkt für andere Leser.
Nick Udell

3

"..moderne CPUs sind billig und werden sich bei 100% CPU schnell verschlechtern".

Sie müssen sich überhaupt nicht um "CPU-Degradation" kümmern. Moderne CPUs sind nicht minderwertig als früher.

Es ist sehr teuer (und wird alle paar Jahre teurer), CPUs herzustellen, einige Milliarden für den Bau einer neuen Fabrik sind keine Seltenheit (siehe Link).

http://en.wikipedia.org/wiki/Semiconductor_fabrication_plant

Die Produktionskosten einer CPU hängen höchstens von der Nr. Ab. der produzierten Einheiten. Dies ist eine bekannte Tatsache in der Wirtschaft. Das ist der Grund, warum sie (relativ) "billig" verkauft werden können. (Ich denke, hier ist kein Link notwendig)

Ich kann eine Reihe von Gründen nennen, warum ich moderne CPUs als tendenziell hochwertiger als früher ansah.

Aber nur das Wichtigste: Vorteile beim Testen. Moderne Elektronik ist "für den Test ausgelegt". Ob Software oder Hardware, die umfassende Einsicht, Tests über fast alles andere zu bewerten, ist noch nicht so alt. Bei CPUs werden sogar Tests zur Bildung der verschiedenen Preis- und Frequenztypen durchgeführt, z. B. werden die besten CPUs mit den höchsten Frequenzen verkauft. Trotzdem sind die billigeren Prozessoren sehr oft in der Lage, mit höherer Frequenz als verkauft zu arbeiten - sie sind nur aus dem Grund verkrüppelt, dass der Hersteller einige "High-Level" -Prozessoren mit höheren Preisen verkaufen möchte.

(Andererseits sind natürlich für einen Prozessor mit mehr als 1,5 Milliarden Transistoren heutzutage mehr Fehler möglich als für einige tausend Transistoren eines Prozessors der siebziger Jahre. Dies widerspricht jedoch nicht meiner Antwort IMO. Prozessoren im Allgemeinen neigen dazu, viele bekannte Fehler zu haben , zumindest im Mikrocode, aber das ist hier nicht Thema.)

Es gibt noch weitere Gründe, sich keine Gedanken über die CPU-Degration Ihres Programms zu machen:

  • Der erste Grund ist, dass moderne CPUs ihre Frequenz oder Drossel verringern, wenn sie zu heiß werden.

    Es sollte klar sein, dass wenn Sie die CPU 100% 24/7 das ganze Jahr über nutzen, sie normalerweise früher stirbt als eine CPU, die nur jede zweite Woche eine Stunde verwendet wird. Das gilt übrigens auch für Autos. Nur in solchen Fällen würde ich selbst über die CPU-Auslastung und das Schlafpotential nachdenken.

  • Der zweite Grund ist, dass es wirklich sehr schwierig ist, ein Programm zu schreiben, das 100% der CPU vom Betriebssystem aus nutzt (z. B. unter Windows). Außerdem haben moderne CPUs (normalerweise) mindestens 2-4 Kerne. Ein traditioneller Algorithmus, der normalerweise 100% einer Single-Core-CPU verwendet, hat jetzt nur 50% auf einer Dual-Core-CPU (vereinfacht, aber in realen Szenarien gesehen).

  • Darüber hinaus hat das Betriebssystem die Kontrolle über die CPU und nicht über Ihr Programm. Wenn es also andere Anwendungen mit gleicher oder höherer Priorität gibt (was die Standardeinstellung ist), erhält Ihr Programm nur so viel CPU wie möglich, die anderen Anwendungen jedoch nicht verhungern. (Natürlich ist dies nur die vereinfachte Theorie, und natürlich ist das Multitasking von Windows, Linux und anderen nicht perfekt, aber insgesamt würde ich das für wahr halten).

"Früher hatte ich den Eindruck, dass eine 100% ige CPU-Auslastung für einen intensiven oder langen Betrieb vorzuziehen war."

Ja, bleib dabei. Wenn Sie beispielsweise auf einen anderen Prozess warten und eine Schleife ausführen, also nichts tun, wäre es nicht allzu schlimm, wenn Sie Thread.Sleep () einige Millisekunden in dieser Schleife ausführen und anderen zusätzliche Zeit geben. Während es für ein gutes Multitasking-Betriebssystem nicht notwendig ist, habe ich einige Probleme damit gelöst, z. B. für Windows 2000. (Das bedeutet natürlich NICHT, Sleep () in Berechnungen zu verwenden.)


3
Während diese Antwort heute zutrifft, gibt es Bedenken für die Zukunft. Früher bedeutete "Solid State" äußerste Zuverlässigkeit, jetzt haben wir jedoch einen MLC-Flash, der in einigen Fällen nur für 1000 Löschzyklen pro Block ausgelegt ist. Wie lange dauert es, bis sich die Chipgrößen verkleinern, um ein ähnliches Phänomen bei CPUs zu erzielen, die ständig mit 100% arbeiten müssen?
Michael

2
@Michael, CPUs mutieren zwar nicht und schreiben in den flüchtigen Speicher - aber ich verstehe immer noch, was Sie sagen wollen.
Peter

3

Ein solcher Abbau ist theoretisch möglich und wird als " Elektromigration " bezeichnet. Die Elektromigration ist temperaturabhängig und beschleunigt sich mit steigender Temperatur. Ob es sich bei modernen CPUs um ein praktisches Problem handelt, steht zur Debatte. Moderne VLSI-Entwurfspraktiken gleichen die Elektromigration aus, und es ist wahrscheinlicher, dass Chips aus anderen Gründen versagen.

Allerdings erfolgt die Elektromigration auch bei normalen Belastungen und Temperaturen , aber sie ist langsam genug, dass ein gut entwickelter Chip entweder lange vor dem Versagen veraltet ist oder erst über einen anderen Mechanismus versagt.

Die Elektromigrationsrate hängt von der Chiptemperatur ab, wobei sich die Lebensdauer für jeweils (sehr grobe) 10 ° C verdoppelt. Dies ist in der Tat die Grundlage eines Tests mit der Bezeichnung "HTOL" (Hochtemperatur-Betriebslebensdauer), der misst, wie lange es dauert, bis ein Chip bei beispielsweise 125 ° C stirbt. Ein Chip, der bei 125 ° C läuft, fällt etwa 100-mal schneller aus als ein Chip, der bei 55 ° C läuft. Wenn er also für eine Lebensdauer von mindestens 10 Jahren bei 55 ° C ausgelegt ist, fällt ein Chip möglicherweise innerhalb eines Monats bei 125 ° C aus. Wenn ein solcher Chip mit einer Temperatur von 85 ° C betrieben wird, fällt er immer noch mindestens fünf bis zehn Mal früher aus, als vorgesehen.

Natürlich sind CPUs in der Regel für höhere Temperaturen ausgelegt, sodass sie in der Regel jahrelang bei 85 ° C und einer Auslastung von 100% rund um die Uhr laufen können. Ich würde daher vorschlagen, dass Sie sich keine Gedanken über die "Abnutzung" der CPU machen und sich nur darum kümmern, ob eine 100% ige Auslastung aus Sicht des Software-Engineerings angemessen ist.


Das Finden dieses Wortes führte zu einer Suche mit vielen Ergebnissen , die im gesamten SE-Netzwerk gut lesbar sind ... viele davon in Electronics.SE und SuperUser.

1

Wenn Sie Ihren Code auf Clients ausführen, bedeutet 100% ige CPU-Auslastung, dass die Clientcomputer in dieser Zeit nur für Aufgaben mit höherer Priorität verwendet werden können. Da die meisten Anwendungen normalerweise mit Standardpriorität ausgeführt werden, stellen Benutzer, die diese Computer verwenden, ein Einfrieren des Computers fest und können auf ihren Computern keine anderen Aktionen ausführen. Auch wenn es sich um kurze Bursts handelt, werden Benutzer, die an etwas arbeiten, es trotzdem bemerken.

Wie schon andere gesagt haben, waren Sie ziemlich verschwiegen über das Setup, deshalb kann ich nicht sicher sagen. Wenn Ihre Clients jedoch Desktop-Computer sind, vermeiden Sie eine 100% ige CPU-Auslastung. Nicht wegen der CPU-Verschlechterung, sondern weil es keine gute Form ist, Benutzer während ihrer Arbeit zu stören.


6
Windows funktioniert so. In Linux und vielen anderen Systemen erhalten Threads, die auf etwas gewartet haben (Benutzereingaben), automatisch Vorrang vor Threads, wobei sie ihre zugewiesene Zeit in Anspruch nehmen, sodass die interaktiven Programme auch dann reagieren, wenn Sie nicht mit Prioritäten spielen.
Jan Hudec

2
@JanHudec Windows macht das eigentlich so. superuser.com/questions/194223/...
NtscCobalt

@NtscCobalt: Ja. Was anscheinend nicht geht ist Windows CE. Und Windows hat schwerwiegende Probleme, wenn ein Prozess schwer auf der Festplatte ist, aber das ist offensichtlich etwas anderes (die Festplattenverarbeitung ist unter Windows im Allgemeinen eher schlecht).
Jan Hudec

1

Die Situation sieht also so aus: Sie haben Code, der fünf Stunden lang mit 100% aller CPUs ausgeführt wird, der so weit wie möglich optimiert ist, der Besitzer der Maschine ist damit einverstanden, dass die Maschine fünf Stunden lang unbrauchbar ist, und Ihr Kollege Laut Aussage ist es besser, den Code mit 83,33% aller CPUs in 6 Stunden auszuführen, da der Computer dadurch weniger beansprucht wird.

Dies hängt vom verwendeten Computer ab. Ich weiß, dass ein Computerhersteller Garantiereparaturen innerhalb der Garantiezeit für billige Heimcomputer verweigert hat, die in einer wissenschaftlichen Umgebung verwendet wurden, die rund um die Uhr läuft. Sie wollten eindeutig, dass der Kunde ihre teureren Server oder "Business" -Computer kauft. Ob sie erfolgreich waren, weiß ich nicht.

Jeder Mac, den ich besitze, hat irgendwann im Leben einen Code, der tagelang 100% der CPU auslastet. In einem Fall musste ich das Display ausschalten, weil ich nicht das Original-Ladegerät für einen Laptop hatte und mit 4 Kernen und Hyper-Threading mehr Strom verbrauchte als das mitgelieferte Ladegerät - so ging der Akku aus und als es erreichte 5 Prozent der Computer verlangsamte die Taktrate, bis der Akku bis zu 10% war! (Bei ausgeschaltetem Display lief es mehrere Tage mit voller Geschwindigkeit). In keinem Fall irgendwelche negativen Auswirkungen.

Mit einem gut gestalteten Computer liegen Sie also richtig. Mit einem schlecht gestalteten, billigen Computer könnte Ihr Kollege recht haben. Auf der anderen Seite können Sie die Kosten für Ihre Wartezeit und die Kosten für den Kauf eines Ersatzcomputers in Betracht ziehen.


0

Wenn dies möglich ist, legen Sie für Ihren Code eine niedrigere Priorität fest und stellen Sie sicher, dass der CPU-schwere Thread von der GUI getrennt ist. Dann haben Sie möglicherweise eine 100% ige Auslastung, aber der Benutzer kann immer noch andere Aufgaben ausführen und bleibt reaktionsschnell. Eine CPU ist für sich genommen so konzipiert, dass sie noch eine Weile zu 100% ausgelastet bleibt oder nicht freigegeben wird. Sie können nichts beschädigen, es sei denn, der Endbenutzer hat ernsthafte und gefährliche Änderungen an seiner Hardware vorgenommen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.