Begrenzungen / Beschränkungen



Die folgende Tabelle gibt die kleinsten Obergrenzen an, die ein PostScript Interpreter erfüllen muß. Diese Grenzen gelten für die meisten Implementierungen, wobei es trotzdem Abweichungen geben kann. Die Grenzen für einen bestimmten PostScript Drucker können i.a. der Drucker-Dokumentation entnommen werden.

integer 231-1 = 2147483647 größter Integerwert; Repräsentation: 16#7FFFFFFF
(In den meisten Fällen wird ein Integerwert automatisch in einen Realwert konvertiert, falls diese Grenze überschritten wird.)
-231 = -2147483648 kleinster Integerwert; Repräsentation: 16#80000000
real ±1038 signifikante Nachkommastellen: 8
größter und kleinster Realwert
±10-38 kleinste Realwerte ungleich Null (Werte, die kleiner werden, werden zu Null konvertiert.)
array 65535 maximale Länge eines Arrays
dictionary 65535 maximale Anzahl der Einträge eines Dictionary (Schlüssel und zugehöriger Wert gelten als ein Eintrag.)
string 65535 maximale Länge eines Strings
name 128 maximale Länge eines gültigen Namens
file 6 maximale Anzahl an offenen Dateien (incl. Standard-Eingabe und -Ausgabe).
userdict 200 Kapazität von userdict. (Zu beachten ist, daß schon zu Beginn einiges in userdict definiert ist, so daß nicht alle 200 Einträge zur Verfügung stehen.)
operand stack 500 maximale Tiefe des operand stack (d.h. die maximale Anzahl von Elementen, die gleichzeitig auf dem Stack liegen können). Damit ist auch die Anzahl der Elemente begrenzt, die in noch nicht beendeten Prozeduren auftreten dürfen.
dict stack 20 maximale Tiefe des dictionary stack
exec stack 250 maximale Tiefe des execution stack. Jede Prozedur, jede Datei oder jeder String, die ausgeführt wurden, belegen ein Element dieses Stacks. Zusätzlich legen einige Kontrollstrukturen (z.B. for, repeat, stopped) Elemente auf diesen Stack, die für deren Ausführung nötig sind.
interpreter level 10 maximale Anzahl rekursiver Aufrufe des PostScript Interpreters. Einige Grafik-Operatoren (z.B. pathforall, show, image) rufen den Interpreter rekursiv auf.
save level 15 maximale Anzahl aktiver saves (d.h. noch kein zugehöriges restore aufgerufen)
gsave level 31 maximale Anzahl aktiver gsaves. Beachte: jedes save führt auch implizit ein gsave aus.
path 1500 maximale Anzahl von Punkten, die in allen aktiven Path-Beschreibungen erlaubt sind. Dies sind: current path, clip path und alle per save und gsave gespeicherten Pfade.
dash 11 maximale Anzahl von Elementen in einem dash-pattern; d.h. die maximale Länge des Arrays von setdash.
VM 240000 maximale Größe des 'Virtual Memory' in Byte. Die aktuelle und die maximale Größe des 'Virtual Memory' kann über vmstatus erfragt werden.
FontDirectory 100 maximale Anzahl von Einträgen in das FontDirectory-Dictionary. Dies gibt die maximale Anzahl gleichzeitig verwendbarer Fonts an. Der Wert kann in einigen PostScript Implementationen auch größer sein.



Virtual Memory (VM)

Es nicht möglich genau zu sagen wieviel VM ein Programm belegt, es können nur ungefähre Angaben gemacht werden. VM wird in der Hauptsache von Werten von zusammengesetzten Objekten belegt. Einfache Objekte und zusammengesetzte Objekte, die Werte mit anderen Objekten teilen belegen kein VM. Die nachfolgenden Angaben sind typisch für eine PostScript Implementierung von Adobe Systems.

VM wird belegt bei Erzeugung von:

Siehe auch:
Begriffserläuterungen / virtual memory
Operatoren / virtual memory


© Holger Gehringer, Dezember 1998