Lauer-Power
Windows-Beschleunigung durch Leerlaufoptimierung
------------------------------------------------
c't 7/01, S. 236 (hos)

Programme zum Messen und Optimieren des Idle-Overheads in Windows.

IdleMess.exe       -- Misst die Verschwendung von CPU-Power durch die 
                      IDLE-Task von Windows.
NoIdle.exe         -- Behebt dieses Problem.

Die Programme bentigen keine spezielle Installation: Einfach in ein 
Verzeichnis kopieren und starten; zum Deinstallieren wieder lschen.

Wenn Sie NoIdle bei jedem Windows-Start aktivieren wollen, knnen Sie 
eine Verknpfung in Ihrem Autostart-Ordner anlegen. Vorher sollten Sie 
das Programm ein paar Stunden im Normalbetrieb testen, um Konflikte mit 
Ihren Anwendungen auszuschlieen.

Die Bedienungsanleitung zu NoIdle ist schon im Artikel enthalten; die 
Einstellmglichkeiten sollten selbsterklrend sein. Die folgenden 
Bemerkungen erklren den Umgang mit IdleMess.


Wer misst, misst Mist
---------------------

Wie im Artikel beschrieben, entsteht Leistungsverlust durch die 
schlampig programmierte IDLE-Routine in Windows immer dann, 
wenn ein Prozess den Rechner nahezu auslastet, aber trotzdem von 
Zeit zu Zeit auf einen anderen Prozess warten muss. Um dieses 
Szenario nachzubilden, muss ein Messprogramm also eine Schleife 
enthalten, die massiv Rechenzeit verschlingt, aber trotzdem immer 
mal wieder die Kontrolle an den Scheduler abgibt. Das Problem ist die 
Floskel "immer mal wieder": Gibt das Programm den Rest einer 
Zeitscheibe zu oft zurck, so erreicht es keine Volllast, und der 
Scheduler knnte IDLE gleich mehrfach in einem Durchlauf aufrufen. 
Luft dagegen die Zeitverschwendungs-Schleife zu lange, dann ist 
nicht mehr sicher gestellt, dass IDLE berhaupt zum Zuge kommt: 
Andere Programme knnten mittlerweile wieder eine Zeitscheibe 
angefordert haben.

Unser Messprogramm gibt in einer Quasi-Endlosschleife bunte 
geometrische Figuren in ein Fenster aus. Wie oft es diese Ttigkeit 
unterbricht, lsst sich mit einem Schieberegler einstellen. Den 
Prozentsatz an Rechenleistung, den diese Unterbrechungen kosten, 
zeigt das Programm in einem Ausgabefeld an. Um nun den IDLE-
Overhead zu messen, geht man folgendermaen vor: Zunchst schiebt 
man den Regler ganz nach links und merkt sich den angezeigten Wert. 
Das Programm nutzt nun die volle ihm zur Verfgung stehende 
Prozessorzeit aus, und der Wert - meist etwa ein bis zwei Prozent - 
entspricht der Zeit, den der Scheduler verbraucht, selbst wenn er nie 
IDLE aufruft. Nun erhht man die Anzahl der Unterbrechungen 
langsam, indem man den Regler nach rechts schiebt. An einer 
bestimmten Stelle fngt der angezeigte Prozentwert auf einmal an, 
stark zu schwanken. Nun muss man sich langsam vorantasten, bis der 
Prozentsatz sich wieder stabilisiert - Schwankungen um ein bis zwei 
Nachkommastellen sind normal und nicht zu vermeiden. Von dem so 
erhaltenen Messwert muss man noch den zuerst ermittelten abziehen 
und erhlt so den Anteil an CPU-Zeit, den allein der IDLE-Prozess 
verbraucht.

Schiebt man den Regler noch weiter nach rechts, so erhht sich der 
angezeigte Wert immer mehr, was darauf hindeutet, dass das 
Programm zu oft unterbrochen wird. Lsst man parallel einen Task-
Manager wie WinTop laufen, so stellt man fest, dass er fr das 
Messprogramm immer weniger CPU-Last anzeigt. Um den gesuchten 
Messwert mglichst genau zu bestimmen, muss man also einerseits 
eine stabile Anzeige, andererseits eine mglichst hohe Auslastung 
anstreben. Auerdem lsst sich die Genauigkeit dadurch verbessern, 
dass man vor der Messung mglichst smtliche Hintergrundprogramme 
wie E-Mail-Checker, Antivirenprogramme oder Wecker beendet. (hos)