top | item 41117565

(no title)

Shugyousha | 1 year ago

I also didn't know about `hyperfine`, very nice!

Even 80ms seems unnecessarily slow to me. 300ms would drive me nuts ...

I'm using a tiling window manager (dwm) and interestingly the spawning time varies depending on the position that the terminal window has to be rendered to.

The fastest startup time I get on the fullscreen tiling mode.

   hyperfine 'st -e true'
   Benchmark 1: st -e true
     Time (mean ± σ):      35.7 ms ±  10.0 ms    [User: 15.4 ms, System: 4.8 ms]
     Range (min … max):    17.2 ms …  78.7 ms    123 runs
The non-fullscreen one ends up at about 60ms which still seems reasonable.

discuss

order

JNRowe|1 year ago

You could maybe find out where the delay is by using st's Xembed support? Create a window with tabbed¹ in a tiling layout, open st in to it with "st -w <xid> -e true". If it is close to the monocle time, it is probably the other windows handling the resize event that is causing the slowdown not the layout choice.

To prove it to myself: I'm using river² and I can see a doubling-ish of startup time with foot³, iff I allow windows from heavier apps to handle the resize event immediately. If the time was a little longer(or more common) I'd be tempted to wrap the spawn along the lines of "kill -STOP <other_clients_in_tag>; <spawn & hold for map>; kill -CONT <other_clients_in_tag>" to delay the resize events until my new window was ready. That way the frames still resize, but their content resize is delayed.

¹ https://tools.suckless.org/tabbed/

² https://codeberg.org/river/river

³ https://codeberg.org/dnkl/foot

aftbit|1 year ago

The result of running the same on st for me:

    Benchmark 1: st -e true
      Time (mean ± σ):      35.4 ms ±   6.9 ms    [User: 15.1 ms, System: 3.8 ms]
      Range (min … max):    24.2 ms …  65.2 ms    114 runs
This is on awesome-wm with the window opening as the 3rd tiled window on a monitor, which means it has to redraw at least the other two windows. I'm also running xfs on top of luks/dm-crypt for my filesystem, which shouldn't matter too much on this benchmark thanks to the page cache, but is a relatively common source of performance woes on this particular system. I really ought to migrate back to unencrypted ext4 and use my SSD's encryption but I haven't wanted to muck with it.

BoingBoomTschak|1 year ago

To get an idea of the cost of tiling (with bspwm, quarter screen tile and 2560x1440@60Hz screen):

  hyperfine -L args '','-c floating' 'st {args} -e true'
  Benchmark 1: st  -e true
    Time (mean ± σ):      25.0 ms ±   2.7 ms    [User: 10.5 ms, System: 3.7 ms]
    Range (min … max):    14.8 ms …  44.1 ms    197 runs

  Benchmark 2: st -c floating -e true
    Time (mean ± σ):      22.7 ms ±   2.6 ms    [User: 10.3 ms, System: 3.9 ms]
    Range (min … max):    20.7 ms …  35.4 ms    123 runs

  Summary
    'st -c floating -e true' ran
      1.10 ± 0.17 times faster than 'st  -e true'
Flexing my system too, heh.