mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-11-07 01:53:24 +09:00
- 2.9 established that a record's ~5 ms is mostly the DEVICE waking out of a deep idle state. That points at a knob that is already wired: how long the server's apply thread spins before parking. Raised from 50 us to 2000 us (via the Activity's existing `env` extra, which ServerEnvironment.apply parses as KEY=VALUE;KEY=VALUE and which does not scrub MOBILEGL_IPC_SPIN_US), the same 43,232-record frame goes 221.5 s -> 182.8 s (-17%), with rtt_mean 5,040 -> 4,145 us. Pinning the device and disabling its deep idle states is worth 166.5 s (-25%) but needs root; the spin needs neither root nor a rebuild. - The server log proves the knob landed (`mgl-srv-apply started ... spin 2000 us`) rather than leaving the reader to trust an env var, and the note carries the exact am start line. - So the load stall now has three ordered levers with numbers behind them: batch the waits (client-only, not built), keep the server hot (this commit, usable today, trades device CPU for wall clock on a frame that is 94% waiting), and pin the device for measurement discipline.