diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-21 23:16:01 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:14 -0300 |
| commit | 50e91395a2b82f586b50eafb57df945f01a3058c (patch) | |
| tree | 1ab451462823b1086ecbf4e427c6fcf46bbddd2a /src/host_io.zig | |
| parent | 20b39924ceabc13c1c72fbeccdcf7f3d490228db (diff) | |
| download | pardes-50e91395a2b82f586b50eafb57df945f01a3058c.tar.gz pardes-50e91395a2b82f586b50eafb57df945f01a3058c.zip | |
Measure time to first paint, which is the startup number that matters
--version measures a process that exits before doing any work. On a pty the
tty shell emits its first byte at 20 ms and settles at 50 ms; the gui takes
~330 ms to map its window, and that is the latency worth noticing.
Of the gui's 330 ms, ~95% is CPU and only ~30 ms is waiting. Profiled warm and
killed before the map: pardes-gui 28.5%, libc 20.7%, ld-linux 11.9%, libudev
10.3%, the nvidia stack ~21%. Cutting across all of those, DWARF unwinding is
20.9% of samples -- the Debug allocator capturing six frames per allocation,
the same cost the previous change found, and now the largest single slice.
Two of my own measurements were wrong and are corrected here. An earlier
~510 ms figure was an artifact: the probe redirected HOME, so the nvidia
shader cache was cold and the driver recompiled every launch. And deferring
SDL_INIT_GAMEPAD past the first frame, on the theory that libudev's 10% was
gamepad enumeration, changed the map time not at all (320-366 ms either way)
and libudev only 10.3% -> 9.6%: that work belongs to SDL_INIT_VIDEO bringing
up Wayland seats. It is reverted rather than kept as an unmeasurable win.
So nothing in the editor's own logic is slow to start. What is left is the
Debug allocator and the GPU stack, and the only lever on either is the build
mode -- which is not worth tripling a ten-minute build for.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Diffstat (limited to 'src/host_io.zig')
0 files changed, 0 insertions, 0 deletions
