Speicherbedarf von Variablen

OBAS verwaltet den internen Speicher sehr effizient und sorgt selbständig dafür, dass unbenutzteSpeicherbereiche bereinigt und freigegeben werden. Im normalen Betrieb ergeben sich keinerleiEinschränkungen, da die beim Start des Programmes angeleigten Speicherbereiche für alle üblichenAufgaben ausreichend dimensioniert werden.
Wenn mit OBAS jedoch sehr umfangreiche Matrizenauswertungen erfolgen sollen, so ist es denkbar,dass die voreingestellten Limits erreicht werden. Der aktuell für Variablen zur Verfügungstehende Speicherbereich kann jederzeit mit der Funktion POOL AVAIL abgefragt werden. Mit derAnweisung DEF POOL kann der Speicher vergrößert oder verkleinert werden.Der Speicherbedarf von Variablen kann auf einfachem Wege ermittelt werden. Für jede Variablewird eine Verwaltungsstruktur mit einer Länge von 24 Bytes angelegt. Zusätzlich wird der Name gespeichert. Bei Vektoren oder Matrizen wird zusätzlich die Größe der einzelnen Dimensionen gespeichert.Hinter diesen Grunddaten wird der Inhalt der eigentlichen Variable gespeichert. Dabeigilt folgender Speicherbedarf für Variablen:

  • 4 Bytes für Ganzzahlen
  • 8 Bytes für Gleitkommazahlen
  • 8 Bytes für Datumsangaben
  • n+4 Bytes für Zeichenketten (n definiert die maximale Länge einer Zeichenkette)

Der Speicherbedarf eines Vektors oder einer Matrix berechnet sich aus der Anzahl der Elemente,d.h. alle Dimensionsabmessungen werden miteinander multipliziert und das Ergebnis wird mitdem Speicherbedarf eines Variableninhalts multipliziert.
Eine Gleitkommamatrix die mit DIM Matrix(5;4) angelegt wird, benötigt also 24+6+5*4*8 also190 Bytes. Da der OBAS-Interpreter intern mit einer 32-Bit-Architektur arbeitet, könntenOBAS-Programme geschrieben werden, die etwa 260 Millionen Gleitkommawerte enthalten. Dasbedeutet, dass selbst bei sehr umfangreichen Buchhaltungsauswertungen Matrizen mit mehrerenZehnmillionen Buchungen ausgewertet werden können.


Schatten