1

我想使用 MacRuby 和 ScriptingBridge 而不是 AppleScript 来控制支持 AppleScript 的 Mac 应用程序。我曾经使用 appscript 来做到这一点,它实际上已被弃用,因此移动了 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 这样的编译步骤无法轻易看出脚本将访问框架的哪些部分,因此很难优化。)

4

0 回答 0