2

我在我的 ios ui 脚本中使用 performTaskWithPathArgumentsTimeout,在执行命令之前似乎引入了隐藏的 1 秒延迟。

var target = UIATarget.localTarget();
var host = target.host();

var start = new Date().getTime();
var result = host.performTaskWithPathArgumentsTimeout("/bin/echo", ["Hello World"], 5);
var total = new Date().getTime() - start;

UIALogger.logDebug("duration: " + total);

输出:持续时间:1001

所有命令都一样。从命令行启动时立即生效,但通过 performTask 启动时会有 1 秒的延迟。

关于如何减少这种延迟的任何想法?

4

2 回答 2

2

此延迟与 UI 自动化在内部启动命令的方式有关。从头到尾,我们无能为力。

也就是说,如果您有很多命令要按顺序执行,您可以将它们全部放在一个 shell 脚本中并像这样执行它:

host.performTaskWithPathArgumentsTimeout("/bin/bash", ["some_shell_script.sh"], 5);

这将在 bash 中运行给定的 shell 脚本文件,您只需支付 1 秒的进程启动罚金一次。

于 2012-05-14T13:36:32.077 回答
2

Instruments-without-delay项目巧妙地解决了这个问题,该项目更改 Instruments 以消除 UIAHost.performTaskWithPathArgumentsTimeout 中的 1 秒延迟

于 2013-03-14T01:05:28.350 回答