Alle beteiligten PLAM-Bibliotheken sollten so gut wie möglich organisiert sein, d.h.:
sie sollten keine überflüssigen LLMs enthalten
sie sollten vollständig reorganisiert sein, sodass die erhaltenen LLMs nicht in unnötig viele Extents aufgeteilt sind
die Bibliothek selbst sollte aus so wenig Extents wie möglich bestehen
die Bibliothek sollte eventuell mit (STD,2) eingerichtet sein
Mit all diesen Maßnahmen wird die Anzahl der Ein-/Ausgaben reduziert und damit die Laufzeit verbessert; der Effekt ist natürlich abhängig von der Ausgangsstruktur. Eine mit (STD,2) eingerichtete Bibliothek wird um etwa 1 KB pro Element größer sein als die Original-Bibliothek; der Ein-/Ausgabe-Einsparungseffekt wird um so größer sein, je mehr (nicht zu kleine) Elemente die Bibliothek hat. Die Laufzeitverbesserung kann über 10% betragen.
Beim Laden eines LLM-Objekts sollte immer das Kommando /START-EXECUTABLE-PROGRAM verwendet werden. Damit werden effektivere BLS-Suchverfahren angestoßen und etwa 10% der CPU-Zeit eingespart.
Falls Module mit dem Attribut READ-ONLY versehen sind, sollte ein Slice für Read-Only-Module und ein Slice für Read-Write-Module erzeugt werden. Dies beschleunigt den Ladevorgang sowohl durch geringeren CPU-Bedarf als auch durch Einsparung von Ein-/Ausgaben.
Die LLM-Größe und damit der PLAM-Aufwand werden reduziert, wenn alle Symbole, die für spätere BINDER-Läufe nicht mehr benötigt werden, invisible gesetzt werden; BINDER-Anweisung:
//MODIFY-SYMBOL-VISIBILITY SYMBOL-NAME=...,SYMBOL-TYPE=...,
SCOPE=...,VISIBLE=*NO,...
Falls Public-/Private-Slices Anwendung finden, sollte Format 2 zur CPU-Reduzierung von BLS und DSSM verwendet werden (siehe BINDER-Anweisung //SAVE-LLM ... FOR-BS2000-VERSIONS=*FROM-V11).
Mit dem Operanden SUBSYSTEM-ENTRIES bei der BINDER-Anweisung //START-LLM-CREATION kann ein symbolischer Name für die Verknüpfungen zwischen dem Private- und dem Public-Slice angegeben werden. Dieser Name muss auch im DSSM-Katalog definiert sein. (Mit dem alten Format wird für jede Verbindung DSSM aufgerufen.)
Es ist darauf zu achten, dass in der Parameterdatei von DSSM der Parameter LOGGING nicht auf ON gesetzt ist (Default: OFF). ON würde dazu führen, dass beim Laden von Subsystemen DSSM-spezifische Daten protokolliert werden.
RESOLVE-BY-AUTOLINK aus mehreren Bibliotheken:
Statt der BINDER-Anweisung //RESOLVE-BY-AUTOLINK LIBRARY=(A,B,C) ist es performanter, wie folgt zu spezifizieren://RESOLVE-BY-AUTOLINK LIBRARY=A //RESOLVE-BY-AUTOLINK LIBRARY=B //RESOLVE-BY-AUTOLINK LIBRARY=C
Dadurch werden beim dynamischen Nachladen z.B. Verweise, die beim Befriedigen aus Bibliothek B neu entstehen, nur noch in Bibliothek B (und evtl. C) und nicht zuerst in Bibliothek A (und dann in B und evtl. C) gesucht.