如何删除performTaskWithPathArgumentsTimeout的1秒延迟

时间:2012-04-13 09:31:13

标签: ios instruments ui-automation ios-ui-automation

我在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秒的延迟。

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

2 个答案:

答案 0 :(得分:2)

此延迟与UI Automation在内部启动命令的方式有关。我们没有任何事情可以做到。

也就是说,如果您尝试按顺序执行许多命令,可以将它们全部放在shell脚本中并执行它:

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

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

答案 1 :(得分:2)

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