jebnet.de

Schwund

Leere Seite
 
egs-Software
Atari-Software
 
 
 
 
 
Schwund 1.0

Dieses Programm ist dazu da, den Rechenzeitverbrauch von Hintergrund-
programmen oder sonstigen potentiellen Performance-Killern zu ermit-
teln. Dazu gehören beim Einsatz von MagiCMac auch die Systemerweite-
rungen, Kontrollfelder und parallel laufenden Programme auf der Mac-
Seite, die z.T. enorm an der Leistung knabbern.

Potentielle Kandidaten sind alle AUTO-Ordner-Programme (die aber zum
Glück in der Regel genügsam sind), Accessories und beliebige andere
Programme, sofern sie regelmäßig über einen Timer-Event Rechenzeit
anfordern. Unter MagiC kann man bequem im Taskmanager (Alt-Ctrl-Esc)
nachsehen, ob ein Programm Timer-Events bekommt: Dann steht ein "ti"
beim Programm. Viele Programme sind auch dabei sehr genügsam, aber
gerade hier gibt es auch oft einen gut meßbaren Rechenzeitverbrauch.

Nicht, daß das nicht legitim wäre, aber die vielen kleinen Tools
sollten die Rechenzeit auch wert sein, die sie verbrauchen. Auf eine
analoge Fensteruhr mit Sekundenzeiger, die mal eben 10% Rechenzeit
fordert, kann man vielleicht auch verzichten. Na gut, bei einem so
extremen Verbrauch merkt man es in der Regel auch schon am subjektiv
langsameren Rechner.

 
Die Vorgehensweise

Die Funktion von Schwund ist simpel: Mit einer beliebigen Rechner-
konfiguration wird eine Referenzmessung gemacht. Dann nimmt man ein
oder mehrere Programme raus oder packt welche dazu oder ändert sonst
irgendwas, und dann macht man eine Vergleichsmessung.

Soweit war's noch ganz einfach. Bei den erforderlichen Messungen aber
auch brauchbare und glaubwürdige Resultate zu bekommen ist da schon
etwas schwieriger.

Zuerst muß man einmal überprüfen, ob die Rechnerkonfiguration für die
Referenzmessung überhaupt so konstante Ergebnisse liefert, daß man
diese glauben und später vergleichen kann. Dazu macht man einfach
eine Referenzmessung, ändert danach rein gar nichts und macht noch
ein paar Vergleichsmessungen hinterher.

Nur wenn diese alle mit minimaler Toleranz etwa gleich ausfallen,
kann man das Ergebnis bedenkenlos als Referenz heranziehen. Wie groß
die akzeptierte Toleranz ist, hängt zum einen vom Anspruch an die
Meßgenauigkeit, zum anderen aber auch von der Realisierbarkeit ab.
Man sollte aber möglichst nur eine Abweichung von +/- 0,1% anstreben.

Was aber, wenn locker 0,5% oder mehr zwischen den eigentlich identi-
schen Messungen liegen?

1. Während der Messungen soll man nichts anderes am Rechner tun, rein
   gar nichts. Allein heftiges Rühren mit der Maus drückt die Werte
   schon um 30%.

2. Am einfachsten erreicht man eine Stabilisierung der %-Werte oft
   durch Erhöhen der Meßzeit. Diese ist von 5 bis 60 Sekunden ein-
   stellbar. Es gibt Programme, die nur alle 5 oder 10 Sekunden etwas
   Zeit haben möchten, und bei kurzen Meßzeiten kommt es dann eben
   vor, daß dies zufällig ein- oder eben keinmal innerhalb der Meß-
   zeit vorkommt.

3. Zusätzlich oder alternativ kann man die konfigurierte Meßzeit auch
   mehrfach vom Programm messen lassen, wobei das Ergebnis dann der
   Durchschnitt der einzelnen Messungen ist. Dadurch wird die Meßzeit
   praktisch ebenfalls verlängert. Der Extremfall wäre also, 10 mal
   für je 60 Sekunden zu messen und das Ergebnis wäre der Durch-
   schnitt der 10 Messungen.

4. Hilft das nichts, ist die Referenzkonfiguration nicht geeignet.
   Irgendein Programm tut in zu langen oder unregelmäßigen Abständen
   etwas, was nicht unerheblich Zeit verbraucht, und macht damit die
   Messung ungenau. Unter MagiC kann man nun versuchen, Schwund im
   Single-Mode zu benutzen - damit sollten die Differenzen erstmal
   weg sein. Unter MagiCMac auch mal die Rechenzeit für die Mac-Seite
   ausschalten, um dortige Verursacher auszuschließen. Danach geht's
   an die Suche nach dem verursachenden Programm.

5. Hilft das alles auch nichts, kann man entweder die groben Toleran-
   zen zähneknischend akzeptieren und nur noch die ganz großen Zeit-
   fresser dingfest machen, oder man tritt Schwund in die Tonne.

 
Die Bedienung

Beim ersten Start kann nur eine Referenzmessung gemacht werden. Man
legt die Meßdauer im Popup fest, außerdem die Anzahl der Messungen,
deren Ergebnisse gemittelt werden sollen.

Der Unterschied zwischen einem Verdoppeln der Meßzeit und einem Ver-
doppeln der Messungsanzahl besteht darin, daß die Meßzeit nur bei der
Referenzmessung eingestellt werden kann und dann für alle Vergleichs-
messungen ebenfalls gilt. Die Meßanzahl kann dagegen je Vergleich
variiert werden.

Sind die Zeit und die Anzahl eingestellt, tippt man wahlweise noch
eine kurze Beschreibung ein und wählt 'Messen'. Das Ergebnis wird in
der Datei 'schwund.inf' gespeichert und das Programm beendet.

Achtung: Wird später eine neue Referenzmessung durchgeführt, werden
alle bisherigen Messungen vergessen und gelöscht!

Bei jedem weiteren Programmstart kann je eine Vergleichsmessung
durchgeführt werden. Für jede Messung hat man eine Kommentarzeile
zur Verfügung, damit man später noch weiß, worin der Unterschied zur
Referenz bestand. Die Anzahl der Vergleichsmessungen ist je Referenz
auf 100 beschränkt.

Nach jeder Vergleichsmessung wird ein Fenster mit den bisherigen
Ergebnissen geöffnet. Die Inhalte sind:

- die festgelegte Anzahl der Testberechnungen
- die jeweilige Anzahl der zu mittelnden Einzelmessungen
- die jeweils benötigte Anzahl Systemtimer-Ticks (1/200 Sekunden)
- die Rechendauer relativ zur Referenzmessung
- die Rechenleistung relativ zur Referenzmessung

Will man einmal nur das bisherige Ergebnis nochmal anschauen, ohne
eine neue Messung zu machen, kann man das mit dem Knopf 'Ansehen' im
Hauptdialog erreichen.

Das Ergebnisfenster kann mit Ctrl-C ins GEM-Clipboard kopiert oder
mit Shift-Ctrl-C dort angehängt werden. Soll eine Ergebnistabelle
also auch die nächste Referenzmessung überleben, dann muß die auf
diese Weise erzeugte Datei SCRAP.TXT irgendwo dauerhaft gesichert
werden.

Der Zeichensatz des Fensters kann per Font-Protokoll (z.B. mit dem
Thing-Fontselektor oder per Drag & Drop mit einem beliebigen anderen)
oder im Dialog nach Alt-Z eingestellt werden.

Nach Schließen des Fensters (per Ctrl-U, Ctrl-Q oder Undo) wird das
Programm beendet. Es muß also für jede Messung neu gestartet werden.

 
Interna und Hinweise

Schwund macht intern folgendes:

- Nachdem die Messung gestartet wurde, wird ein kleines Fenster
  geöffnet, um sicherzustellen, daß Schwund die aktive Vordergrund-
  applikation ist.

- Damit anstehende Fenster-Redraws erledigt werden können und das
  System auch sonst zur Ruhe kommt, wird für 5 Sekunden in diesem
  Fenster verharrt und alle Rechenzeit abgegeben. Diese Zeit wird
  ggf. soweit ausgedehnt, daß seit Programmstart mindestens 10 Sekun-
  den vergangen sind. Man ist also nicht unbedingt schneller, wenn
  man auf das Eintippen einer Kommentarzeile verzichtet. ;-)

- Im Fall einer Referenzmessung werden zunächst einige Testmessungen
  gemacht und mit den Ergebnissen durch Hochrechnen die Anzahl der
  Testzyklen bestimmt. Diese ist relevant für die anschließende
  Referenzmessung wie auch für alle folgenden Vergleichsmessungen.
  Die Vorgabe der Meßzeit ist also nur für die grobe Hochrechnung der
  Zyklenanzahl von Bedeutung. Die tatsächlich benötigte Zeit für die
  Referenzmessung stimmt nur selten genau überein.

- Die ermittelten Ergebnisse sind nicht auf andere Rechner oder
  andere Konfigurationen übertragbar. Meistens sind Tendenz und
  Verbrauch zwar ähnlich, aber ein Programm kann durchaus auf einem
  Rechner 0,5% und auf einem anderen 3% Zeit verbrauchen.

- "Wer viel mißt, mißt Mist!" - Für Schwund interpretiert: Niemals
  den Ergebnissen trauen, ohne sich zuvor von der Glaubwürdigkeit
  durch konstante Ergebnisse wie oben beschrieben zu überzeugen!
H C Letzte Änderung 19. Dezember 2000 - webmaster@jebnet.de