SelfGTR Logo KapitelseiteSelfGTR KapitelseiteEinführung
TextseiteErmittlung des Speicherbedarfs
vorige SeiteKapitelseiteüber das Programmieren TextseiteBefehle und Anweisungennächste Seite
 
Gliederung:Folgende Themen werden behandelt:
zum Anfanghochrunter

1. Allgemeines

Da 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.

Hinweis:Beim Beenden des Programmes bleiben jegliche Daten erhalten. Um das Löschen nicht mehr benötigter Daten muss sich der Programmierer selbst kümmern.


zum Anfanghochrunter

2. Ermittlung des Speicherbedarfs

Sobald 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:

Ein- Byte- Befehle Zwei- Byte- Befehle
sin cos tan do If Then Else IfEnd ... WhileEnd LpWhile ...

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.

zum Anfanghochrunter

3. Beispielberechnung

Dieser kleine Beispielquelltext soll zur Berechnung herangezogen werden. Es wird zwischen permanenter und temporärer Speicherauslastung unterschieden.

Beispiel:ClrGraph
"LINEARE FKT
Y=MX+N"
"M"?M
"N"?N
Graph Y=MX+N

Das Beispielprogramm soll eine lineare Funktion ausgeben, welche über die Parameter M und N einzulesen ist.

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.

zum Anfanghochrunter

SelfGTR Version 5.23 vom 04.10.2007© 2002 - 2007 Ronny Scholz