e2e framework benchmark — ios 2026-10-25

Run eas-ios-agent-device, started 2026-10-25T12:16:03.510Z

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.1.1
Host load at start
3.51
Device
warden-iphone-17-1 (ios, iOS 26.5), udid F7838A8B-4109-4937-804E-B7DD9CCE79E2
App
nz.co.delacour.warden.example, hash import:2d35643eda49, sha256 2d35643eda49, 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.77 s91.93 s1.00×92.86 s18.41 s17.32 s322 ms223 ms100%0%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.77 s · 1.00×025 s50 s75 s100 sagent-device agent-device 0.21.31agent-device: 91.77 s · 1.00× (p95 91.93 s, cold rep 1 92.86 s)91.77 s · 1.00×

Per-test medians (ms)

Testagent-device
onboarding steps through to sign-in3867 (1.00×)
invalid email and short password show field errors16549 (1.00×)
a locked account shows the form alert9671 (1.00×)
valid credentials land on todos9771 (1.00×)
add, complete and filter todos15503 (1.00×)
open a todo, mark it done, then delete it12491 (1.00×)
deep link opens a todo by id10417 (1.00×)
settings shows the account, toggles switches and signs out13228 (1.00×)

Median per test

Warm median per test and framework, in millisecondsonboarding steps through to sign-in: agent-device 3867 ms · 1.00×. invalid email and short password show field errors: agent-device 16549 ms · 1.00×. a locked account shows the form alert: agent-device 9671 ms · 1.00×. valid credentials land on todos: agent-device 9771 ms · 1.00×. add, complete and filter todos: agent-device 15503 ms · 1.00×. open a todo, mark it done, then delete it: agent-device 12491 ms · 1.00×. deep link opens a todo by id: agent-device 10417 ms · 1.00×. settings shows the account, toggles switches and signs out: agent-device 13228 ms · 1.00×05 s10 s15 s20 sonboarding steps through to sign-inagent-device: 3867 ms · 1.00×3867 ms · 1.00×invalid email and short password show field errorsagent-device: 16549 ms · 1.00×16549 ms · 1.00×a locked account shows the form alertagent-device: 9671 ms · 1.00×9671 ms · 1.00×valid credentials land on todosagent-device: 9771 ms · 1.00×9771 ms · 1.00×add, complete and filter todosagent-device: 15503 ms · 1.00×15503 ms · 1.00×open a todo, mark it done, then delete itagent-device: 12491 ms · 1.00×12491 ms · 1.00×deep link opens a todo by idagent-device: 10417 ms · 1.00×10417 ms · 1.00×settings shows the account, toggles switches and signs outagent-device: 13228 ms · 1.00×13228 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.87 s. invalid email and short password show field errors: agent-device agent-device 16.55 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.77 s. add, complete and filter todos: agent-device agent-device 15.50 s. open a todo, mark it done, then delete it: agent-device agent-device 12.49 s. deep link opens a todo by id: agent-device agent-device 10.42 s. settings shows the account, toggles switches and signs out: agent-device agent-device 13.23 s05 s10 s15 s20 sonboarding steps through to sign-inagent-device: agent-device 3.87 s (p95 3.88 s, min 3807, max 3879, n 4)agent-device 3.87 sinvalid email and short password show field errorsagent-device: agent-device 16.55 s (p95 16.60 s, min 16522, max 16596, n 4)agent-device 16.55 sa locked account shows the form alertagent-device: agent-device 9.67 s (p95 9.74 s, min 9645, max 9739, n 4)agent-device 9.67 svalid credentials land on todosagent-device: agent-device 9.77 s (p95 9.85 s, min 9755, max 9846, n 4)agent-device 9.77 sadd, complete and filter todosagent-device: agent-device 15.50 s (p95 15.53 s, min 15481, max 15528, n 4)agent-device 15.50 sopen a todo, mark it done, then delete itagent-device: agent-device 12.49 s (p95 12.56 s, min 12406, max 12561, n 4)agent-device 12.49 sdeep link opens a todo by idagent-device: agent-device 10.42 s (p95 10.61 s, min 10235, max 10613, n 4)agent-device 10.42 ssettings shows the account, toggles switches and signs outagent-device: agent-device 13.23 s (p95 13.28 s, min 13177, max 13277, n 4)agent-device 13.23 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 479 ms · p95 1.62 s0500 ms1 s1.5 s2 sagent-device (632 steps)agent-device: 479 ms · p95 1.62 s479 ms · p95 1.62 s
FrameworkStepsMedianp95Max
agent-device632479 ms1.62 s1.90 s

Resources

CPU

CPU use per frameworkHost CPU average: agent-device 12.9%. Host CPU peak: agent-device 532.8%. Simulator CPU average: agent-device 125.8%. Simulator CPU peak: agent-device 380.0%0%200%400%600%Host CPU averageagent-device: 12.9%12.9%Host CPU peakagent-device: 532.8%532.8%Simulator CPU averageagent-device: 125.8%125.8%Simulator CPU peakagent-device: 380.0%380.0%

Memory

Peak resident memory per frameworkHost RSS peak: agent-device 2.4 GB. Simulator RSS peak: agent-device 37.0 GB0 B9.3 GB18.6 GB27.9 GB37.3 GBHost RSS peakagent-device: 2.4 GB2.4 GBSimulator RSS peakagent-device: 37.0 GB37.0 GB
FrameworkScopeCPU-s / repCPU avgCPU peakRSS avgRSS peak
agent-devicehost10.30 s12.9%532.8%745.9 MB2.4 GB
agent-devicesim—125.8%380.0%36.8 GB37.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.50 s73.3%218.0 MB218.7 MB1
bun cli.tshost1.77 s17.3%268.7 MB273.3 MB1
snapshot-bridgehost0.77 s7.5%116.3 MB116.4 MB1
node agent-devicehost0.15 s1.5%61.0 MB66.8 MB1
pshost0.02 s0.2%1.9 MB1.9 MB182
simctlhost0.02 s0.2%20.4 MB20.4 MB1
node agent-device (exit charge)host0.01 s0.1%0 B0 B0
(simctl)host0.00 s0.0%96.9 KB17.2 MB1
DTServiceHubhost0.00 s0.0%16.7 MB16.7 MB1
caffeinatehost0.00 s0.0%7.3 MB7.3 MB1
(bash)host0.00 s0.0%0 B0 B0
(clang)host0.00 s0.0%0 B0 B0
otherhost0.00 s0.0%0 B0 B0
iOSsim89.31 s65.7%35.5 GB35.5 GB291
wardenexamplesim35.81 s26.3%371.9 MB438.3 MB8
AgentDeviceRunnerUITests-Runnersim9.14 s6.7%268.2 MB268.2 MB1
CoreSimulatorBridgesim0.51 s0.4%80.6 MB80.7 MB1
simctlsim0.48 s0.4%676.7 KB20.5 MB7
launchd_simsim0.31 s0.2%52.4 MB52.4 MB1
trialdsim0.13 s0.1%96.7 MB96.7 MB1
storekitdsim0.13 s0.1%128.3 MB128.3 MB1
xpcproxy_simsim0.09 s0.1%176.0 KB9.1 MB4
mlhostdsim0.08 s0.1%34.2 KB6.1 MB1
(wardenexample)sim0.00 s0.0%2.4 MB433.2 MB1
assetsdsim0.00 s0.0%163.2 MB163.2 MB1
othersim0.00 s0.0%274.3 MB274.3 MB4

Residue

Unsupported / failed

None.