我在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秒的延迟。
关于如何减少这种延迟的任何想法?
答案 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秒延迟