Ihr Adobe-InDesign-Skript ist fertig, läuft fehlerfrei, nur die Ausführungsgeschwindigkeit begeistert Sie nicht.
Es wäre jetzt interessant zu wissen, welche Programmteile am meisten Zeit benötigen, oder welche Funktionen am häufigsten durchlaufen werden.
Das Adobe-Extend-Toolkit bietet Analysefunktionen, die aber für mich eine Reihe von Nachteilen haben:
- funktionieren nur im ToolKit
- funktionieren innerhalb eines modalen Fensters nicht
- können nicht beim Anwender eingesetzt werden.
Die Anwendung:
Zeile 9
Definition eines Arrays als globale Variable.
Zeile 10:
Initialisierung der Profiler-Klasse und Abspeichern des Profilerobjektes in die gloable Variable.
Ein Messung wird mit der Methode profileEntry("name", true) gestartet.
Innerhalb der Klasse wird für jeden Namen ein Datensatz in einem Array eingerichtet, der die Felder name, usedTime, counter, startTime enthält.
Bei jedem Aufruf der Startroutine wird geprüft, ob bereits ein Datensatz existiert, wenn nicht, wird er eingerichtet, die Startzeit gespeichert und der Zähler inkrementiert.
Bei jedem Aufruf der Stoproutine wird die verbrauchte Zeit ermittelt und dem Parameter usedTime hinzugefügt.
Die aufgelaufenen Werte können zu jeder Zeit, in der Regel aber wohl am Skriptende, ausgewertet und in einer Datei abgespeichert werden.
Die Klasse können Sie direkt oder per #include-Direktive in Ihr Skript einbinden.
Den Code für die Klassendefinition und dem Beispielprogramm finden Sie in der angehängten Datei, die direkt nach Anmeldung im Forum herunterladen können.