![]() |
SelfGTR Einführung |
|||||||||||||||||||||||||
Ermittlung des Speicherbedarfs |
||||||||||||||||||||||||||
1. AllgemeinesDa der Speicherplatz des Taschenrechners sehr begrenzt ist (32 oder 64 Kilobyte), sollte das Programm sehr effizient geschrieben sein.Das heißt, dass es einen möglichst kurzen Quelltext haben sollte. Es gibt prinzipiell 2 Typen der Speicherauslastung: permantente und tempöräre. Permanente Auslastung ist der Speicher, den das Programm immer benötigt (beim GTR ist das der Quelltext und das "Rohprogramm"). Sollte das Programm gestartet werden, dann werden wichtige Daten zwischengespeichert (z.B. der Wert von Variablen), die aber nur während der Ausführung von Interesse sind. Das heißt: während das Programm gerade läuft, benötigt es (meistens deutlich) mehr Speicherplatz als sonst. Ich bezeichne dies als temporäre Speicherauslastung.
2. Ermittlung des SpeicherbedarfsSobald ein Programm existiert, benötigt es 10 Byte Memory, unabhängig davon, ob es Quelltext enthält oder nicht.Für den Speicherbedarf des Quelltextes gilt: einzlene Befehle können entweder 1 Byte oder 2 Byte beanspruchen. Das hängt von der Länge des Befehls ab und wird in folgender Tabelle verdeutlicht:
Einzelne Zeichen wie zum Beispiel A benötigen nur 1 Byte. Variablen (also Buchstaben, Listenzellen oder Matrixzellen) kosten mindestens 10 Byte Speicherplatz. Zu beachten ist hier die Sonderstellung der Variablen als Buchstaben. Diese verbrauchen keinen Speicher, falls deren Wert 0 sein sollte und 20 Byte (also doppelt soviel), wenn deren Inhalt komplex ist. Programme können auch automatisch Funktionsgraphen erstellen. Hierfür werden pro Funktion weitere 10 Byte berechnet. Sollten grafische Ausgabebefehle ausgeführt werden, wird ein DrawMemory von 4096 Bytes berechnet. Betrachtungsfenster- Einstellungen können ebenfalls gespeichert werden, wofür 10 Byte pro Speicherslot berechnet werden.
3. BeispielberechnungDieser kleine Beispielquelltext soll zur Berechnung herangezogen werden. Es wird zwischen permanenter und temporärer Speicherauslastung unterschieden.
Der Quelltext besteht aus einem 2Byte-Befehl und 41 1Byte-Befehlen, was gemeinsam mit dem Programm an sich 53 Byte ergibt (permanente Speicherauslastung). Zusätzlich wurden die Variablen M und N belegt (20 Byte). Bedingt durch die Zeichenoperation kommen durch die Benutzung von X und Y noch einmal 20 Byte und weil das Bild im DrawMemory festgehalten wird noch einmal 4096 Byte hinzu (insgesamt 5136 Byte). Die temporäre Auslastung beträgt daher 5189 Byte.
| ||||||||||||||||||||||||||