[GastForen Programmierung/Entwicklung AppleScript Beschleunigen von Scripts mit "do script"

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Beschleunigen von Scripts mit "do script"

Hans Haesler
  
Beiträge gesamt: 5826

27. Sep 2006, 12:09
Beitrag # 1 von 3
Bewertung:
(729 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Scripter,

wenn ein Script etwas gar lange braucht, bis es ausgeführt ist,
dann kann das Benutzen der XPress-eigenen 'do script'-Methode helfen.

Hier zwei Scripts zur Demonstration des Unterschiedes.

Ein neues XPress-Dokument erzeugen, Format A4 und dieses Script starten:
Code
tell application "QuarkXPress 6.5" 
  activate
  my makeBoxes()
end tell

on makeBoxes()
  set curVal to 0
  set y1 to 40
  tell document 1 of application "QuarkXPress 6.5"
    repeat with i from 1 to 10
      set y1 to y1 + 11
      set x1 to 50
      set y2 to y1 + 10
      repeat with j from 1 to 10
        set curVal to curVal + 1
        set x2 to x1 + 10
        make picture box at beginning with properties {bounds:{y1, x1, y2, x2} ¬
          , color:"Magenta", shade:curVal}
        set x1 to x1 + 11
      end repeat
    end repeat
  end tell
end makeBoxes

Nochmals ein neues Dokument und das do-script-Script starten:
Code
tell application "QuarkXPress 6.5" 
  activate
  do script {makeBoxes}
end tell

script makeBoxes
  set curVal to 0
  set y1 to 40
  tell document 1 of application "QuarkXPress 6.5"
    repeat with i from 1 to 10
      set y1 to y1 + 11
      set x1 to 50
      set y2 to y1 + 10
      repeat with j from 1 to 10
        set curVal to curVal + 1
        set x2 to x1 + 10
        make picture box at beginning with properties {bounds:{y1, x1, y2, x2} ¬
          , color:"Magenta", shade:curVal}
        set x1 to x1 + 11
      end repeat
    end repeat
  end tell
end script

Auch ohne Stoppuhr bemerkt man den Unterschied. Ich habe auf meinem G4 für
das erste Script 13.288 Sekunden gemessen und für das zweite 2.656 Sekunden.

Etwas (veraltete) Lektüre gibt es hier: "Beschleunigung dank der 'do script'-Methode"
http://www.page-online.de/page/forum/viewthread/1849/

Praktische Beispiele? Jede Menge in den optimierten XPress-Script-Menü-Script-
Sammlungen für QXP 6.x oder 7.0. Erhältlich hier: http://www.fachhefte.ch
Den Link "AppleScripts" betätigen den Ordner "mac_os_x_d" öffnen und je nach
Version auch "min_qxp_6_1" oder "qxp_7_0". Die Stuffit-Archive heissen
"Quark_6.x_scripts_d" bzw. "Quark_7.x_scripts_d".

Gruss, Hans
X

Beschleunigen von Scripts mit "do script"

TMA
Beiträge gesamt: 399

27. Sep 2006, 12:45
Beitrag # 2 von 3
Beitrag ID: #421202
Bewertung:
(728 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
der wahnsinn...

normaler handleraufruf: ca. 13 sekunden

do script aufruf: ca. 3-4 sekunden

aber jetzt kommts:
wenn ich im tell xpress-block den script-aufruf änder von do script nach run script brauchts ca. 9 sekunden. weis einer warum das so ist?

gruß
TMA


als Antwort auf: [#421201]

Beschleunigen von Scripts mit "do script"

Hans Haesler
  
Beiträge gesamt: 5826

27. Sep 2006, 13:18
Beitrag # 3 von 3
Beitrag ID: #421203
Bewertung:
(728 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo TMA,

weil 'do script' eben eine XPress-native Methode ist und die Aktionen im
Hintergrund ablaufen. Und 'run script' ist eine Methode des Scripting-
Systems. Dass es schneller ist, als der Handler, mag in der Verwendung
des Scriptobjekts liegen. Aber Genaueres weiss ich nicht.

Übrigens: Auch InDesign hat eine 'do script' Möglichkeit. Aber Adobe hat
es nicht geschafft, die Arbeitsweise der XPress-Methode zu kopieren und
somit wird nur ein 'run script' durchgeführt.

Gruss, Hans


als Antwort auf: [#421201]