OldMac Postad 21 september, 2006 Författare Share Postad 21 september, 2006 Jag hittade följande information angående applescript på Intel: I hadn’t seen this documented anywhere else, and just stumbled across it… I wanted to update several AppleScript applets that were PowerPC applications into Univeral binaries. Note I’m talking about the sort of AppleScript applications that one builds with Script Editor and saving the script as an application - not AppleScript Studio apps. When you save an AppleScript in Script Editor, there are several options in the File Format menu. If you choose “application”, you’ll get a PowerPC-only app. However, if you choose “application bundle”, you’ll get a Universal app. So open your AppleScript apps in Script Editor, and resave them as “application bundles” and you are set! 403015[/snapback] Vad jag inte tycker är oklart i ovanstående är om det handlar om äldre skript-filer som har flyttat över till Intel-Macarna, eller om de är återskapade (nyskrivna)? Att gamla skriptfiler måste sparas på särskilda vis för att anpassas till Intel-Macarna är en sak - men jag tycker att det vore konstigt om varken applets (program) eller sparda manusfiler gick att köra i 'native mode' på Intel Mac, utan att Rosetta lägger sig i? Länk till kommentar Dela på andra webbplatser More sharing options...
BengtZappa Postad 21 september, 2006 Share Postad 21 september, 2006 Vad jag inte tycker är oklart i ovanstående är om det handlar om äldre skript-filer som har flyttat över till Intel-Macarna, eller om de är återskapade (nyskrivna)? Att gamla skriptfiler måste sparas på särskilda vis för att anpassas till Intel-Macarna är en sak - men jag tycker att det vore konstigt om varken applets (program) eller sparda manusfiler gick att köra i 'native mode' på Intel Mac, utan att Rosetta lägger sig i? 403069[/snapback] Om du sparar från manusredigeraren som program så står det "PowerPC" som programtyp om du tittar på filens info i Finder. Däremot, om du sparar som programpaket så står det "Universal" i filens info. Så din misstanke stämmer - rosetta används om du inte sparar som programpaket. Länk till kommentar Dela på andra webbplatser More sharing options...
Ssargon Postad 21 september, 2006 Share Postad 21 september, 2006 Problemet kommer utav att "Application" är den gamla typen av program, dvs den som innehöll allting i en fil medans "Application Bundle" är gjord som program i Mac OS X är tänkta att fungera med ett antal små filer som tillsammans bildar en applikation. Dags att sluta använda Mac OS 9 tänket om man har en intel Mac med andra ord... Länk till kommentar Dela på andra webbplatser More sharing options...
OldMac Postad 21 september, 2006 Författare Share Postad 21 september, 2006 Om du sparar från manusredigeraren som program så står det "PowerPC" som programtyp om du tittar på filens info i Finder. Däremot, om du sparar som programpaket så står det "Universal" i filens info. Så din misstanke stämmer - rosetta används om du inte sparar som programpaket. 403082[/snapback] Problemet kommer utav att "Application" är den gamla typen av program, dvs den som innehöll allting i en fil medans "Application Bundle" är gjord som program i Mac OS X är tänkta att fungera med ett antal små filer som tillsammans bildar en applikation. Dags att sluta använda Mac OS 9 tänket om man har en intel Mac med andra ord... 403092[/snapback] Kul - problemkällan verkar vara lokaliserad. Har någon lust att spara mitt något uppsnofsade testskript (kräver inte längre huvudräkning) som programpaket och köra på sin Intel Mac? Annars får jag själv masa mig iväg och testa i närmaste Apple Store vid tillfälle. Att jag gärna ser flera test, beror på att jag tycker att de i forumet utförda testerna har visat på betydligt större prestandaskillnader än vad jag har sett tillskrivet Rosetta. tell application "Finder" activate set cd1 to (current date) as string repeat 1500 times -- uppehållande repetition set cd2 to (current date) as string end repeat set tempString1 to characters 7 thru 8 of word 5 of cd1 as string set tempString2 to characters 7 thru 8 of word 5 of cd2 as string set int1 to tempString1 as integer set int2 to tempString2 as integer if int2 is greater than int1 then set totalTime to int2 - int1 as integer else set temp to 60 - int1 as integer set totalTime to temp + int2 as integer end if display dialog "Skriptet kördes på " & totalTime & " sekunder." buttons {"OK"} default button "OK" with icon note end tell Länk till kommentar Dela på andra webbplatser More sharing options...
OldMac Postad 21 september, 2006 Författare Share Postad 21 september, 2006 Följande är också en bekräftelse på att formatet i vilket skriptfilerna sparas kan vara väsentligt för vilken prestanda AppleScript får på Intel-Macar. To: apple-script-users@lists.apple.com "A suggestion on my local Mac forum is that the Intel Mac's require AppleScript files to be saved as bundles, else they will be run as PPC files by Rosetta. Can anyone confirm or contradict that?" Re: "That's true if and only if you're referring to scripts saved as applications. The script itself does not contain any PPC or x86 code -- it's data that's fed to the AppleScript interpreter. What matters is the flavor of the executable running the script. --Chris Nebel AppleScript Engineering" Det enda frågetecknet jag finner i svaret är hur 'script files' (AppleScript-filer sparda som manus) fungerar? Skulle alltså inte de köras av Rosetta? Återstår att testa. Länk till kommentar Dela på andra webbplatser More sharing options...
BengtZappa Postad 21 september, 2006 Share Postad 21 september, 2006 Kul - problemkällan verkar vara lokaliserad. Har någon lust att spara mitt något uppsnofsade testskript (kräver inte längre huvudräkning) som programpaket och köra på sin Intel Mac? Annars får jag själv masa mig iväg och testa i närmaste Apple Store vid tillfälle. Att jag gärna ser flera test, beror på att jag tycker att de i forumet utförda testerna har visat på betydligt större prestandaskillnader än vad jag har sett tillskrivet Rosetta. tell application "Finder" activate set cd1 to (current date) as string repeat 1500 times -- uppehållande repetition set cd2 to (current date) as string end repeat set tempString1 to characters 7 thru 8 of word 5 of cd1 as string set tempString2 to characters 7 thru 8 of word 5 of cd2 as string set int1 to tempString1 as integer set int2 to tempString2 as integer if int2 is greater than int1 then set totalTime to int2 - int1 as integer else set temp to 60 - int1 as integer set totalTime to temp + int2 as integer end if display dialog "Skriptet kördes på " & totalTime & " sekunder." buttons {"OK"} default button "OK" with icon note end tell 403219[/snapback] Jag har testat koden och fick följande resultat: Programpaket: 1 sekund Script kört från manusredigeraren: 23 sekunder Alrighty then Länk till kommentar Dela på andra webbplatser More sharing options...
OldMac Postad 21 september, 2006 Författare Share Postad 21 september, 2006 Jag har testat koden och fick följande resultat:Programpaket: 1 sekund Script kört från manusredigeraren: 23 sekunder Alrighty then 403381[/snapback] Alrighty then! Länk till kommentar Dela på andra webbplatser More sharing options...
Rekommendera Poster
Arkiverat
Det här ämnet är nu arkiverat och är stängt för ytterligare svar.