2012-04-13 12 views
2

Ich verwende performTaskWithPathArgumentsTimeout in meinem ios-Skript, und es scheint eine versteckte 1-sekündige Verzögerung vor der Ausführung des Befehls eingeführt werden.wie die 1sec Verzögerung von performTaskWithPathArgumentsTimeout zu entfernen

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); 

Ausgänge: Dauer: 1001

Es ist das gleiche für alle Befehle. Sofort, wenn sie von der Befehlszeile aus gestartet wird, aber sie haben diese Verzögerung von 1 Sekunde, wenn sie über performTask gestartet wird.

Haben Sie eine Idee, wie Sie diese Verzögerung reduzieren können?

Antwort

2

Diese Verzögerung hängt davon ab, wie die Benutzeroberflächenautomatisierung den Befehl intern startet. Von unserem Ende können wir nichts machen.

Das heißt, wenn Sie viele Befehle haben Sie nacheinander auszuführen versuchen, können Sie sie alle in ein Shell-Skript setzen kann, und führen Sie wie folgt:

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

, dass die angegebenen Shell ausgeführt wird Script-Datei innerhalb der Bash und Sie müssen nur die 1 Sekunde Prozessstart Strafe einmal bezahlen.

2

Dies wurde durch das instruments-without-delay Projekt geschickt gelöst, die Instrumente, die Verzögerung von 1 Sekunde in UIAHost.performTaskWithPathArgumentsTimeout

+0

Ist es Arbeit an realen Geräten entfernen ändert? –