e2e framework benchmark — ios 2026-10-25

Run eas-ios-agent-device, started 2026-10-25T23:55:47.152Z

Host
VirtualMac2,1, Apple M4 Pro (Virtual), 10 cores, 40.0 GB RAM, macOS 26.5.2
Toolchain
Xcode 26.6, Java 17.0.19, Node 22.23.1, bun 1.3.14, warden 0.3.1
Host load at start
2.95
Device
warden-iphone-17-1 (ios, iOS 26.5), udid E763773F-42D2-4069-98B9-BEB57C4DF899
App
nz.co.delacour.warden.example, hash import:c283eae41c7a, sha256 c283eae41c7a, 96.4 MB
Options
runs 5, retries 0, reboot between no, caffeinated yes
Frameworks
agent-device agent-device 0.21.31

Fairness rules

Summary

FrameworkStatusVersionSuite median (warm)p95RatioCold rep 1Cold-start costPrepareTeardownOverheadPass rateFlakeResidueFootprint (LOC / deps)
agent-device✓ okagent-device 0.21.3191.61 s ✗91.70 s—87.46 s12.23 s16.37 s315 ms213 ms97.5%2.5%0 proc / 1 app / 1 path158 LOC / 0 B

Warm suite wall time

Bar = warm median. Whisker = p95. Dot = cold rep 1. Lower is faster; ratios are against the fastest framework.

Warm suite median per framework with p95 whisker and cold rep 1 markeragent-device agent-device 0.21.31: agent-device 91.61 s · —025 s50 s75 s100 sagent-device agent-device 0.21.31agent-device: 91.61 s · — (p95 91.70 s, cold rep 1 87.46 s)91.61 s · —

Per-test medians (ms)

Testagent-device
onboarding steps through to sign-in3830 (1.00×)
invalid email and short password show field errors16579 ✗
a locked account shows the form alert9673 (1.00×)
valid credentials land on todos9784 (1.00×)
add, complete and filter todos15470 (1.00×)
open a todo, mark it done, then delete it12422 (1.00×)
deep link opens a todo by id10483 (1.00×)
settings shows the account, toggles switches and signs out13136 (1.00×)

Median per test

Warm median per test and framework, in millisecondsonboarding steps through to sign-in: agent-device 3830 ms · 1.00×. invalid email and short password show field errors: agent-device 16579 ms. a locked account shows the form alert: agent-device 9673 ms · 1.00×. valid credentials land on todos: agent-device 9784 ms · 1.00×. add, complete and filter todos: agent-device 15470 ms · 1.00×. open a todo, mark it done, then delete it: agent-device 12422 ms · 1.00×. deep link opens a todo by id: agent-device 10483 ms · 1.00×. settings shows the account, toggles switches and signs out: agent-device 13136 ms · 1.00×05 s10 s15 s20 sonboarding steps through to sign-inagent-device: 3830 ms · 1.00×3830 ms · 1.00×invalid email and short password show field errorsagent-device: 16579 ms16579 msa locked account shows the form alertagent-device: 9673 ms · 1.00×9673 ms · 1.00×valid credentials land on todosagent-device: 9784 ms · 1.00×9784 ms · 1.00×add, complete and filter todosagent-device: 15470 ms · 1.00×15470 ms · 1.00×open a todo, mark it done, then delete itagent-device: 12422 ms · 1.00×12422 ms · 1.00×deep link opens a todo by idagent-device: 10483 ms · 1.00×10483 ms · 1.00×settings shows the account, toggles switches and signs outagent-device: 13136 ms · 1.00×13136 ms · 1.00×

Spread across warm reps

Whisker = min to max. Shaded box = min to p95. Tick = median. A distribution carries no quartiles, so the box is not an interquartile range.

Warm rep spread per test: min to max whisker, min to p95 box, median tickonboarding steps through to sign-in: agent-device agent-device 3.83 s. invalid email and short password show field errors: agent-device agent-device 16.58 s. a locked account shows the form alert: agent-device agent-device 9.67 s. valid credentials land on todos: agent-device agent-device 9.78 s. add, complete and filter todos: agent-device agent-device 15.47 s. open a todo, mark it done, then delete it: agent-device agent-device 12.42 s. deep link opens a todo by id: agent-device agent-device 10.48 s. settings shows the account, toggles switches and signs out: agent-device agent-device 13.14 s05 s10 s15 s20 sonboarding steps through to sign-inagent-device: agent-device 3.83 s (p95 3.86 s, min 3808, max 3859, n 4)agent-device 3.83 sinvalid email and short password show field errorsagent-device: agent-device 16.58 s (p95 16.79 s, min 16543, max 16789, n 4)agent-device 16.58 sa locked account shows the form alertagent-device: agent-device 9.67 s (p95 9.70 s, min 9600, max 9703, n 4)agent-device 9.67 svalid credentials land on todosagent-device: agent-device 9.78 s (p95 9.80 s, min 9629, max 9796, n 4)agent-device 9.78 sadd, complete and filter todosagent-device: agent-device 15.47 s (p95 15.50 s, min 15448, max 15504, n 4)agent-device 15.47 sopen a todo, mark it done, then delete itagent-device: agent-device 12.42 s (p95 12.48 s, min 12338, max 12481, n 4)agent-device 12.42 sdeep link opens a todo by idagent-device: agent-device 10.48 s (p95 10.54 s, min 10135, max 10545, n 4)agent-device 10.48 ssettings shows the account, toggles switches and signs outagent-device: agent-device 13.14 s (p95 13.17 s, min 13122, max 13172, n 4)agent-device 13.14 s

Per-step latency

Whisker = min to max. Shaded box = min to p95. Tick = median. Only frameworks that report steps appear.

Step latency per frameworkagent-device (632 steps): agent-device 471 ms · p95 1.62 s0500 ms1 s1.5 s2 sagent-device (632 steps)agent-device: 471 ms · p95 1.62 s471 ms · p95 1.62 s
FrameworkStepsMedianp95Max
agent-device632471 ms1.62 s1.89 s

Where step time goes

Step scopes differ per tool: warden's one fill step spans the focus tap, select-all, typing and read-back confirm, argent reports a separate idle step and into …, agent-device reports fill and type separately, and tester.army reports locator steps. Compare a verb's share within a tool, not its median across tools.

agent-device

VerbnShareMedianp95Max
press24440.6%520 ms1.02 s1.09 s
type6423.9%1.26 s1.86 s1.89 s
wait27620.9%55 ms969 ms1.08 s
open369%1.02 s1.07 s1.10 s
fill125.5%1.69 s1.75 s1.75 s

Resources

CPU

CPU use per frameworkHost CPU average: agent-device 13.6%. Host CPU peak: agent-device 611.5%. Simulator CPU average: agent-device 86.0%. Simulator CPU peak: agent-device 248.7%0%200%400%600%800%Host CPU averageagent-device: 13.6%13.6%Host CPU peakagent-device: 611.5%611.5%Simulator CPU averageagent-device: 86.0%86.0%Simulator CPU peakagent-device: 248.7%248.7%

Memory

Peak resident memory per frameworkHost RSS peak: agent-device 2.4 GB. Simulator RSS peak: agent-device 11.0 GB0 B4.7 GB9.3 GB14.0 GBHost RSS peakagent-device: 2.4 GB2.4 GBSimulator RSS peakagent-device: 11.0 GB11.0 GB
FrameworkScopeCPU-s / repCPU avgCPU peakRSS avgRSS peak
agent-devicehost11.18 s13.6%611.5%711.9 MB2.4 GB
agent-devicesim—86.0%248.7%10.8 GB11.0 GB

CPU-s / rep is the host CPU time of the timed run (warm median) and the headline. CPU avg and peak are ps %cpu, a decaying average on macOS: they move with suite length, do not judge on them.

Where the CPU goes

One table per framework, from the warm-median rep's timed run (the rep whose host CPU-seconds is the lower median). Rows are processes grouped by label (top 12 per scope, the rest in other); host is the framework's own process tree, sim the simulator's launchd_sim tree (iOS only). Share is of the scope's CPU-seconds. RSS is the label's summed RSS per 500 ms tick (0 where it had no process). Spawns counts distinct pids a tick saw: a process that lives between two ticks is only seen through the (exit charge) rows (CPU of a child the bench ran, booked at its exit), so many short-lived xcrun simctl calls read low in Spawns and in CPU.

agent-device

ProcessScopeCPU-sShareRSS avgRSS peakSpawns
xcodebuildhost7.97 s71.9%219.6 MB220.4 MB1
bun cli.tshost1.93 s17.4%239.8 MB245.3 MB1
snapshot-bridgehost0.78 s7.0%116.6 MB116.7 MB1
pshost0.22 s2.0%1.8 MB1.9 MB181
node agent-devicehost0.14 s1.3%61.1 MB66.7 MB1
simctlhost0.04 s0.4%20.3 MB20.3 MB1
node agent-device (exit charge)host0.01 s0.1%0 B0 B0
DTServiceHubhost0.00 s0.0%16.4 MB16.4 MB1
caffeinatehost0.00 s0.0%7.1 MB7.1 MB1
(clang)host0.00 s0.0%0 B0 B0
(ps)host0.00 s0.0%0 B0 B0
(simctl)host0.00 s0.0%0 B0 B0
otherhost0.00 s0.0%0 B0 B0
iOSsim37.64 s44.2%10.1 GB10.1 GB110
wardenexamplesim36.00 s42.3%375.2 MB438.6 MB8
AgentDeviceRunnerUITests-Runnersim10.00 s11.7%269.7 MB269.8 MB1
simctlsim0.55 s0.6%749.3 KB20.7 MB8
CoreSimulatorBridgesim0.54 s0.6%81.6 MB81.7 MB1
launchd_simsim0.21 s0.2%37.0 MB37.1 MB1
xpcproxy_simsim0.16 s0.2%257.5 KB12.7 MB6
launchctlsim0.08 s0.1%24.8 KB4.4 MB1
pkdsim0.00 s0.0%59.1 MB59.1 MB1
aslmanagersim0.00 s0.0%21.2 MB21.2 MB1
(launchctl)sim0.00 s0.0%0 B0 B0
(managedappdistri)sim0.00 s0.0%0 B0 B0
othersim0.00 s0.0%0 B0 B0

Residue

Unsupported / failed

None.