Hallo Hans,
nur um einem Missverständnis vorzubeugen: Mit einem geeigneteren Forum meinte ich kein anderes AppleScript-Forum, sondern eher eins, das sich mit Systemfragen beschäftigt.
Deine Frage nach dem Code hat mich angeregt, eine Textreihe mit unterschiedlich umfangreichen Scripts durchzuführen.
Versuchsablauf (die MB-Angaben lese ich aus der Aktivitätsanzeige ab, sobald sie sich beruhigt hat):
Nach jedem Script-Duchlauf beende ich den AppleScript-Editor und starte ihn wieder, mit leerem Fenster 9,5 MB
ohne Fenster 7,9 MB
Script Heaptest_1.scpt geöffnet 11,8 MB
Allgemeiner Script-Aufbau:
Alle Heaptest-Scripts nehmen Text aus einem TextWrangler-Dokument und speichern ihn in eine Variable
Was das Script mit dem Text macht, gebe ich beim jeweiligen Versuch an.
Am Ende wird der bearbeitete Text aus der Variablen in das TextWrangler-Dokument zurückgespeichert.
Als Beispiel Heaptest_9.scpt (v9):
v1 führt eine change-Zeile mit regexp aus: 50,8 MB
v2 geöffnet 11,9 MB
v2 führt zwei change-Zeilen aus (eine mit, eine ohne regexp) 69,6 MB
Im Folgenden beende ich den AppleScript-Editor und öffne die Scripts direkt mit Doppelklick:
(MB-Angaben jeweils nach der Ausführung)
v3 mit 3 change-Zeilen (2 mit regexp) 84,4 MB
v4 mit 6 change-Zeilen (4 mit regexp) 120,8 MB
v5 mit 9 change-Zeilen (7 mit regexp) 152,4 MB
v6 mit 18 change-Zeilen (16 mit regexp) 202,4 MB
v7 mit Doppelklick geöffnet 12,5 MB
v7 mit 27 change-Zeilen (2 ohne regexp) 375,5 MB
v8 wie v5 + eine repeat-Schleife, mit einer find-text-Zeile (mit regexp) als exit-Bedingung
solange der gesuchte Text gefunden wird, wird eine change-Zeile mit regexp ausgeführt.
2 Durchgänge der repeat-Schleife-> 195,1 MB
v9 wie v5 + einer change-Zeile mit einer Such- und einer Ersetzenliste von jeweils 7 Elementen 165,1 MB
anschließend die Events anzeigen lassen 176,4 MB
wieder auf »Ergebnis« umgeschaltet 176,5 MB
Der Test bringt für mich nichts Neues: je mehr Textbearbeitungsaufgaben das Script zu erfüllen hat, desto mehr Speicherplatz wird belegt. Vielleicht muss man etwas anderes testen.
Die Frage bleibt, warum der Speicherplatz nach Ablauf des Scripts nicht wieder freigegeben wird. Kann die Ursache im Script liegen?
Oder sollte ich den Entwickler der Satimage.osax mal danach fragen?
Mit herzlichen Grüßen