Optimierung der Geschwindigkeit

a) Programmoptimierung

Zuerst einmal kann man Variablendefinitionen, die über den Ausdruck hinweg konstant sein sollen, aus der Druckschleife herausziehen. Wenn Sie also bei Listen immer Ihren Firmennamen als Briefkopf ausgeben wollen, definieren Sie diesen am besten außerhalb der Schleife vor LlPrintWithBoxStart().

b) Wird die Variable / das Feld verwendet?

Man kann außerdem abfragen, welche Variablen oder Felder in den Ausdrücken verwendet werden. Wenn das Angebot an Variablen oder Feldern größer ist als die tatsächlich verwendete Zahl, oder die Beschaffung der Datenwerte aufwändig ist (Unterabfragen, Berechnungen etc.), dann lohnt sich der Einsatz dieser Funktionen. Der Aufruf von LlGetUsedIdentifiers() liefert alle im Projekt verwendeten Variablen und Felder. LlGetUsedIdentifiersEx() erlaubt darüber hinaus, nach der Art (Variable oder Feld) zu unterscheiden.

Sie sollten diese Funktion vor dem Druckstart aufrufen und nur die Felder bzw. Variablen aus Ihrer Datenquelle übergeben, die auch wirklich verwendet werden.

c) Globaler "Dummy"-Job

Einige der von List & Label verwendeten Systembibliotheken (z. B. riched20.dll) scheinen unter bestimmten Umständen Ressourcenverluste zu verursachen. Diese sind sehr klein, fallen aber bei jedem Laden und Entladen der DLL an.

Diese DLLs werden von List & Label bei jedem Öffnen bzw. Schließen des "ersten" Jobs ge- bzw. entladen. Insofern sollten Sie in Ihrer Applikation ein häufiges LlJobOpen() / LlJobClose() vermeiden oder aber zu Beginn einen Dummy-Job öffnen und diesen bis zum Ende geöffnet halten. Damit wird das ständige Laden und Entladen der DLLs umgangen, und neben einer dadurch erreichten Geschwindigkeitsoptimierung werden auch die Ressourcenverluste nicht mehr auftreten.