我想使用MacRuby和ScriptingBridge代替AppleScript来控制支持AppleScript的Mac应用程序。我过去常常使用appscript,这实际上是deprecated,因此移动了MacRuby和脚本桥。
我遇到的唯一问题是ScriptingBridge框架需要大约一秒钟才能加载,即使在具有快速SSD的快速机器上也是如此。例如,这个简单的脚本运行大约需要0.9秒,几乎花费了大量时间来加载ScriptingBridge框架:
#!/usr/bin/env macruby
framework "ScriptingBridge"
textedit = SBApplication.applicationWithBundleIdentifier("com.apple.TextEdit")
textedit.activate
等效的osascript运行大约需要70毫秒,而py-appscript用于给出类似的时间:
osascript -e 'tell application "TextEdit" to activate'
是否有任何简单的方法将MacRuby / ScriptingBridge脚本捆绑/编译/缩小为更快启动的内容?
我已经尝试使用macrubyc将脚本捆绑到一个独立的可执行文件中,但生成的可执行文件运行速度不比正常运行时的脚本快得多,仍需要大约一秒钟才能运行。
(我的预感是否定的,因为像macrubyc这样的编译步骤无法轻易看到脚本将访问框架的哪些部分,因此很难进行优化。)