Skip to content

Count a livelock from its first stalled cycle - #288

Merged
hovsep merged 2 commits into
mainfrom
fix/livelock
Oct 5, 2026
Merged

hovsep merged 2 commits into
mainfrom
fix/livelock

Conversation

@hovsep

@hovsep hovsep commented Oct 5, 2026 •

Copy link
Copy Markdown
Owner

Before: a stall that began right after a productive cycle was reported one cycle late, after n+1 stalled cycles instead of WithLivelockThreshold(n). The error also said components "never activated" when they had activated in earlier cycles, and the docs called detection "exact, not a guess".

After: the threshold is exact. The error says N other component(s) have no input signals. The docs state what detection assumes: a waiter decides from its inputs alone.

Why

The pending signal count a stalled cycle is compared against was taken before the previous cycle's drain. When the drain changed the count, the first stalled cycle did not match it and was not counted. A waiter that proceeds because of its State(), the clock or something outside the mesh looks stuck while it waits and gets stopped as livelocked. That is a limit of the design, so it is now documented and tested rather than claimed away.

How

  • Run records the baseline count after each drain. detectLivelock counts the pending signals only when every activated component kept its inputs.
  • livelockError drops the "dropping inputs" branch, which could never run because every recorded result in a stalled cycle keeps its inputs. It also fixes the wording for components with no input.
  • New tests cover: the exact threshold from cycle 1 and after a productive cycle, a waiter that consumes one signal per cycle, a waiter next to a busy component, a tie with the cycle limit, a rerun after a livelock, and the stateful-waiter limit.
  • runtime.md, wiki 401 and config.go are updated. No CHANGELOG entry: that is written at release time.

make check passes with golangci-lint v2.13.1. The new threshold and message tests fail on main.

The pending signal count a stalled cycle is compared against was taken
before the previous cycle's drain. When a stall began right after a
productive cycle the counts differed, so the first stalled cycle was not
counted and WithLivelockThreshold(n) fired one cycle late. The baseline
is now taken after the drain.

The error no longer says components "never activated" when they only
have no input signals in the stalled cycle, and the unreachable
"dropping inputs" branch is gone: in a stalled cycle every recorded
result keeps its inputs.

The docs no longer call detection exact. It assumes a waiter decides
from its inputs alone; one that proceeds on its State, the clock or the
outside world is reported as livelocked.
@hovsep hovsep self-assigned this Oct 5, 2026
@hovsep
hovsep merged commit c4a1cc6 into main Oct 5, 2026
3 of 5 checks passed
@hovsep
hovsep deleted the fix/livelock branch October 5, 2026 20:37
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown

Benchmark report (advisory)

Statistically significant changes: 17 regression(s), 11 improvement(s) (PR head vs. base branch).

Benchmark Metric Base PR Δ
MeshRun/wide/10-4 sec/op 53.38µ ± 4% 54.30µ ± 3% +1.71%
MeshRun/wide/1000-4 sec/op 2.605m ± 1% 2.578m ± 1% -1.03%
MeshRun/fan-in/100-4 sec/op 393.2µ ± 2% 388.2µ ± 1% -1.25%
MeshRun/fan-in/10000-4 sec/op 514.0m ± 2% 526.5m ± 2% +2.44%
MeshRun/fan-out/10-4 sec/op 59.39µ ± 2% 63.26µ ± 2% +6.51%
MeshRun/fan-out/100-4 sec/op 313.9µ ± 1% 326.9µ ± 1% +4.14%
MeshRun/fan-out/1000-4 sec/op 2.482m ± 2% 2.559m ± 1% +3.09%
MeshRun/fan-out/10000-4 sec/op 29.18m ± 4% 28.60m ± 2% -1.97%
MeshRun/pipeline/10-4 sec/op 109.0µ ± 1% 116.4µ ± 1% +6.83%
MeshConstruction/10-4 sec/op 30.90µ ± 0% 33.14µ ± 1% +7.23%
MeshConstruction/100-4 sec/op 304.8µ ± 1% 324.7µ ± 1% +6.51%
MeshConstruction/1000-4 sec/op 3.427m ± 1% 3.558m ± 1% +3.81%
MeshConstruction/10000-4 sec/op 40.26m ± 2% 39.53m ± 2% -1.83%
MeshCyclesPerSecond/scheduling-only/mid-4 sec/op 119.5m ± 1% 121.4m ± 1% +1.56%
MeshRun/wide/1000-4 B/op 971.3Ki ± 0% 970.9Ki ± 0% -0.04%
MeshRun/fan-in/1000-4 B/op 9.428Mi ± 0% 9.428Mi ± 0% -0.00%
MeshConstruction/1000-4 B/op 2.576Mi ± 0% 2.576Mi ± 0% +0.00%
MeshCyclesPerSecond/scheduling-only/small-4 B/op 2.239Mi ± 0% 2.239Mi ± 0% +0.00%
MeshCyclesPerSecond/scheduling-only/mid-4 B/op 25.84Mi ± 0% 25.84Mi ± 0% +0.01%
MeshRun/wide/1000-4 allocs/op 30.96k ± 0% 30.96k ± 0% -0.01%
MeshRun/fan-in/1000-4 allocs/op 42.98k ± 0% 42.97k ± 0% -0.01%
MeshCyclesPerSecond/scheduling-only/small-4 allocs/op 44.02k ± 0% 44.02k ± 0% +0.00%
MeshCyclesPerSecond/scheduling-only/mid-4 allocs/op 411.5k ± 0% 411.5k ± 0% +0.00%
MeshCyclesPerSecond/scheduling-only/mid-4 activations/s 836.7k ± 2% 823.8k ± 1% -1.54%
MeshCyclesPerSecond/scheduling-only/mid-4 cycles/s 1.673k ± 2% 1.647k ± 1% -1.52%
PortFlush/pipes=1/hook=false-4 sec/op 698.5n ± 0% 700.4n ± 1% +0.27%
PortFlush/pipes=4/hook=false-4 sec/op 1.211µ ± 0% 1.219µ ± 1% +0.62%
GroupBuild/10000-4 sec/op 609.5m ± 2% 630.6m
GroupPayloadSize/8-4 sec/op 1.044µ ± 1% 1.069µ
GroupPayloadSize/65536-4 sec/op 1.040µ ± 0% 1.028µ
GroupPayloadSize/1048576-4 sec/op 1.106µ ± 1% 1.077µ
GroupBuild/1000-4 B/op 8.355Mi ± 0% 8.355Mi ± 0% -0.00%

Higher is worse on every metric. allocs/op is the most reliable signal on shared CI runners; treat sec/op as guidance.

Full benchstat table
goos: linux
goarch: amd64
pkg: github.com/hovsep/fmesh
cpu: AMD EPYC 7763 64-Core Processor                
                                                 │  base.txt   │              pr.txt               │
                                                 │   sec/op    │   sec/op     vs base              │
MeshRun/wide/10-4                                  53.38µ ± 4%   54.30µ ± 3%  +1.71% (p=0.007 n=8)
MeshRun/wide/100-4                                 270.9µ ± 1%   272.3µ ± 1%       ~ (p=0.083 n=8)
MeshRun/wide/1000-4                                2.605m ± 1%   2.578m ± 1%  -1.03% (p=0.028 n=8)
MeshRun/wide/10000-4                               27.01m ± 4%   27.51m ± 2%       ~ (p=0.442 n=8)
MeshRun/fan-in/10-4                                66.89µ ± 2%   67.12µ ± 1%       ~ (p=0.161 n=8)
MeshRun/fan-in/100-4                               393.2µ ± 2%   388.2µ ± 1%  -1.25% (p=0.005 n=8)
MeshRun/fan-in/1000-4                              6.714m ± 2%   6.682m ± 1%       ~ (p=0.442 n=8)
MeshRun/fan-in/10000-4                             514.0m ± 2%   526.5m ± 2%  +2.44% (p=0.015 n=8)
MeshRun/fan-out/10-4                               59.39µ ± 2%   63.26µ ± 2%  +6.51% (p=0.000 n=8)
MeshRun/fan-out/100-4                              313.9µ ± 1%   326.9µ ± 1%  +4.14% (p=0.000 n=8)
MeshRun/fan-out/1000-4                             2.482m ± 2%   2.559m ± 1%  +3.09% (p=0.001 n=8)
MeshRun/fan-out/10000-4                            29.18m ± 4%   28.60m ± 2%  -1.97% (p=0.015 n=8)
MeshRun/pipeline/10-4                              109.0µ ± 1%   116.4µ ± 1%  +6.83% (p=0.000 n=8)
MeshConstruction/10-4                              30.90µ ± 0%   33.14µ ± 1%  +7.23% (p=0.000 n=8)
MeshConstruction/100-4                             304.8µ ± 1%   324.7µ ± 1%  +6.51% (p=0.000 n=8)
MeshConstruction/1000-4                            3.427m ± 1%   3.558m ± 1%  +3.81% (p=0.000 n=8)
MeshConstruction/10000-4                           40.26m ± 2%   39.53m ± 2%  -1.83% (p=0.021 n=8)
MeshCyclesPerSecond/scheduling-only/small-4        17.45m ± 1%   17.56m ± 1%       ~ (p=0.065 n=8)
MeshCyclesPerSecond/scheduling-only/mid-4          119.5m ± 1%   121.4m ± 1%  +1.56% (p=0.005 n=8)
MeshCyclesPerSecond/scheduling-only/huge-4          1.140 ± 2%    1.147 ± 2%       ~ (p=0.382 n=8)
MeshCyclesPerSecond/with-signal-movement/small-4   24.18m ± 1%   24.15m ± 1%       ~ (p=0.878 n=8)
MeshCyclesPerSecond/with-signal-movement/mid-4     167.0m ± 1%   168.3m ± 1%       ~ (p=0.234 n=8)
MeshCyclesPerSecond/with-signal-movement/huge-4     1.663 ± 3%    1.702 ± 2%       ~ (p=0.105 n=8)
geomean                                            4.249m        4.329m       +1.89%

                                                 │   base.txt    │                pr.txt                 │
                                                 │     B/op      │     B/op       vs base                │
MeshRun/wide/10-4                                   10.10Ki ± 0%    10.10Ki ± 0%       ~ (p=1.000 n=8)
MeshRun/wide/100-4                                  93.73Ki ± 0%    93.73Ki ± 0%       ~ (p=0.329 n=8)
MeshRun/wide/1000-4                                 971.3Ki ± 0%    970.9Ki ± 0%  -0.04% (p=0.015 n=8)
MeshRun/wide/10000-4                                9.287Mi ± 0%    9.284Mi ± 0%       ~ (p=0.959 n=8)
MeshRun/fan-in/10-4                                 15.10Ki ± 0%    15.10Ki ± 0%       ~ (p=1.000 n=8) ¹
MeshRun/fan-in/100-4                                209.8Ki ± 0%    209.8Ki ± 0%       ~ (p=0.552 n=8)
MeshRun/fan-in/1000-4                               9.428Mi ± 0%    9.428Mi ± 0%  -0.00% (p=0.007 n=8)
MeshRun/fan-in/10000-4                              829.8Mi ± 0%    829.8Mi ± 0%       ~ (p=0.904 n=8)
MeshRun/fan-out/10-4                                11.97Ki ± 0%    11.97Ki ± 0%       ~ (p=1.000 n=8) ¹
MeshRun/fan-out/100-4                               98.46Ki ± 0%    98.46Ki ± 0%       ~ (p=0.552 n=8)
MeshRun/fan-out/1000-4                             1000.8Ki ± 0%   1000.6Ki ± 0%       ~ (p=0.195 n=8)
MeshRun/fan-out/10000-4                             9.562Mi ± 0%    9.564Mi ± 0%       ~ (p=0.382 n=8)
MeshRun/pipeline/10-4                               26.05Ki ± 0%    26.05Ki ± 0%       ~ (p=1.000 n=8) ¹
MeshConstruction/10-4                               26.79Ki ± 0%    26.79Ki ± 0%       ~ (p=1.000 n=8) ¹
MeshConstruction/100-4                              258.7Ki ± 0%    258.7Ki ± 0%       ~ (p=1.000 n=8) ¹
MeshConstruction/1000-4                             2.576Mi ± 0%    2.576Mi ± 0%  +0.00% (p=0.026 n=8)
MeshConstruction/10000-4                            25.65Mi ± 0%    25.65Mi ± 0%       ~ (p=0.280 n=8)
MeshCyclesPerSecond/scheduling-only/small-4         2.239Mi ± 0%    2.239Mi ± 0%  +0.00% (p=0.031 n=8)
MeshCyclesPerSecond/scheduling-only/mid-4           25.84Mi ± 0%    25.84Mi ± 0%  +0.01% (p=0.028 n=8)
MeshCyclesPerSecond/scheduling-only/huge-4          238.0Mi ± 0%    238.1Mi ± 0%       ~ (p=0.195 n=8)
MeshCyclesPerSecond/with-signal-movement/small-4    5.739Mi ± 0%    5.740Mi ± 0%       ~ (p=0.328 n=8)
MeshCyclesPerSecond/with-signal-movement/mid-4      60.85Mi ± 0%    60.85Mi ± 0%       ~ (p=0.442 n=8)
MeshCyclesPerSecond/with-signal-movement/huge-4     588.0Mi ± 0%    588.0Mi ± 0%       ~ (p=0.959 n=8)
geomean                                             1.616Mi         1.616Mi       +0.00%
¹ all samples are equal

                                                 │  base.txt   │               pr.txt                │
                                                 │  allocs/op  │  allocs/op   vs base                │
MeshRun/wide/10-4                                   332.0 ± 0%    332.0 ± 0%       ~ (p=1.000 n=8) ¹
MeshRun/wide/100-4                                 3.038k ± 0%   3.038k ± 0%       ~ (p=1.000 n=8) ¹
MeshRun/wide/1000-4                                30.96k ± 0%   30.96k ± 0%  -0.01% (p=0.011 n=8)
MeshRun/wide/10000-4                               310.2k ± 0%   310.2k ± 0%       ~ (p=0.878 n=8)
MeshRun/fan-in/10-4                                 471.0 ± 0%    471.0 ± 0%       ~ (p=1.000 n=8) ¹
MeshRun/fan-in/100-4                               4.257k ± 0%   4.257k ± 0%       ~ (p=1.000 n=8) ¹
MeshRun/fan-in/1000-4                              42.98k ± 0%   42.97k ± 0%  -0.01% (p=0.006 n=8)
MeshRun/fan-in/10000-4                             430.0k ± 0%   430.0k ± 0%       ~ (p=0.904 n=8)
MeshRun/fan-out/10-4                                360.0 ± 0%    360.0 ± 0%       ~ (p=1.000 n=8) ¹
MeshRun/fan-out/100-4                              2.886k ± 0%   2.886k ± 0%       ~ (p=1.000 n=8) ¹
MeshRun/fan-out/1000-4                             28.10k ± 0%   28.10k ± 0%       ~ (p=0.191 n=8)
MeshRun/fan-out/10000-4                            280.4k ± 0%   280.4k ± 0%       ~ (p=0.367 n=8)
MeshRun/pipeline/10-4                               683.0 ± 0%    683.0 ± 0%       ~ (p=1.000 n=8) ¹
MeshConstruction/10-4                               772.0 ± 0%    772.0 ± 0%       ~ (p=1.000 n=8) ¹
MeshConstruction/100-4                             7.351k ± 0%   7.351k ± 0%       ~ (p=1.000 n=8) ¹
MeshConstruction/1000-4                            73.97k ± 0%   73.97k ± 0%       ~ (p=1.000 n=8) ¹
MeshConstruction/10000-4                           740.1k ± 0%   740.1k ± 0%       ~ (p=1.000 n=8) ¹
MeshCyclesPerSecond/scheduling-only/small-4        44.02k ± 0%   44.02k ± 0%  +0.00% (p=0.018 n=8)
MeshCyclesPerSecond/scheduling-only/mid-4          411.5k ± 0%   411.5k ± 0%  +0.00% (p=0.026 n=8)
MeshCyclesPerSecond/scheduling-only/huge-4         4.080M ± 0%   4.082M ± 0%       ~ (p=0.195 n=8)
MeshCyclesPerSecond/with-signal-movement/small-4   193.6k ± 0%   193.6k ± 0%       ~ (p=0.200 n=8)
MeshCyclesPerSecond/with-signal-movement/mid-4     1.908M ± 0%   1.908M ± 0%       ~ (p=0.442 n=8)
MeshCyclesPerSecond/with-signal-movement/huge-4    19.04M ± 0%   19.04M ± 0%       ~ (p=0.959 n=8)
geomean                                            34.99k        34.99k       +0.00%
¹ all samples are equal

                                                 │   base.txt    │               pr.txt                │
                                                 │ activations/s │ activations/s  vs base              │
MeshCyclesPerSecond/scheduling-only/small-4          573.1k ± 2%     569.4k ± 1%       ~ (p=0.065 n=8)
MeshCyclesPerSecond/scheduling-only/mid-4            836.7k ± 2%     823.8k ± 1%  -1.54% (p=0.005 n=8)
MeshCyclesPerSecond/scheduling-only/huge-4           877.3k ± 5%     871.8k ± 2%       ~ (p=0.382 n=8)
MeshCyclesPerSecond/with-signal-movement/small-4     413.6k ± 1%     414.1k ± 1%       ~ (p=0.878 n=8)
MeshCyclesPerSecond/with-signal-movement/mid-4       598.8k ± 1%     594.2k ± 4%       ~ (p=0.234 n=8)
MeshCyclesPerSecond/with-signal-movement/huge-4      601.4k ± 5%     587.5k ± 3%       ~ (p=0.105 n=8)
geomean                                              630.2k          624.1k       -0.97%

                                                 │  base.txt   │              pr.txt               │
                                                 │  cycles/s   │  cycles/s    vs base              │
MeshCyclesPerSecond/scheduling-only/small-4        11.46k ± 2%   11.39k ± 1%       ~ (p=0.065 n=8)
MeshCyclesPerSecond/scheduling-only/mid-4          1.673k ± 2%   1.647k ± 1%  -1.52% (p=0.004 n=8)
MeshCyclesPerSecond/scheduling-only/huge-4          175.4 ± 5%    174.4 ± 2%       ~ (p=0.342 n=8)
MeshCyclesPerSecond/with-signal-movement/small-4   8.271k ± 1%   8.281k ± 1%       ~ (p=0.878 n=8)
MeshCyclesPerSecond/with-signal-movement/mid-4     1.198k ± 1%   1.188k ± 4%       ~ (p=0.244 n=8)
MeshCyclesPerSecond/with-signal-movement/huge-4     120.2 ± 5%    117.5 ± 3%       ~ (p=0.088 n=8)
geomean                                            1.260k        1.248k       -0.96%

pkg: github.com/hovsep/fmesh/port
                               │  base.txt   │              pr.txt               │
                               │   sec/op    │   sec/op     vs base              │
CollectionForEach/ports=2-4      1.808n ± 1%   1.811n ± 1%       ~ (p=0.150 n=8)
CollectionForEach/ports=8-4      3.614n ± 0%   3.614n ± 0%       ~ (p=0.937 n=8)
CollectionForEach/ports=32-4     11.88n ± 0%   11.88n ± 0%       ~ (p=0.897 n=8)
PortFlush/pipes=1/hook=false-4   698.5n ± 0%   700.4n ± 1%  +0.27% (p=0.041 n=8)
PortFlush/pipes=1/hook=true-4    727.2n ± 0%   727.9n ± 1%       ~ (p=0.901 n=8)
PortFlush/pipes=4/hook=false-4   1.211µ ± 0%   1.219µ ± 1%  +0.62% (p=0.002 n=8)
PortFlush/pipes=4/hook=true-4    1.324µ ± 1%   1.330µ ± 1%       ~ (p=0.199 n=8)
geomean                          93.66n        93.88n       +0.23%

                               │    base.txt    │                pr.txt                │
                               │      B/op      │     B/op      vs base                │
CollectionForEach/ports=2-4        0.000 ± 0%       0.000 ± 0%       ~ (p=1.000 n=8) ¹
CollectionForEach/ports=8-4        0.000 ± 0%       0.000 ± 0%       ~ (p=1.000 n=8) ¹
CollectionForEach/ports=32-4       0.000 ± 0%       0.000 ± 0%       ~ (p=1.000 n=8) ¹
PortFlush/pipes=1/hook=false-4     872.0 ± 0%       872.0 ± 0%       ~ (p=1.000 n=8) ¹
PortFlush/pipes=1/hook=true-4      920.0 ± 0%       920.0 ± 0%       ~ (p=1.000 n=8) ¹
PortFlush/pipes=4/hook=false-4   1.438Ki ± 0%     1.438Ki ± 0%       ~ (p=1.000 n=8) ¹
PortFlush/pipes=4/hook=true-4    1.625Ki ± 0%     1.625Ki ± 0%       ~ (p=1.000 n=8) ¹
geomean                                       ²                 +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                               │   base.txt   │               pr.txt               │
                               │  allocs/op   │ allocs/op   vs base                │
CollectionForEach/ports=2-4      0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=8) ¹
CollectionForEach/ports=8-4      0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=8) ¹
CollectionForEach/ports=32-4     0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=8) ¹
PortFlush/pipes=1/hook=false-4   32.00 ± 0%     32.00 ± 0%       ~ (p=1.000 n=8) ¹
PortFlush/pipes=1/hook=true-4    33.00 ± 0%     33.00 ± 0%       ~ (p=1.000 n=8) ¹
PortFlush/pipes=4/hook=false-4   53.00 ± 0%     53.00 ± 0%       ~ (p=1.000 n=8) ¹
PortFlush/pipes=4/hook=true-4    57.00 ± 0%     57.00 ± 0%       ~ (p=1.000 n=8) ¹
geomean                                     ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

pkg: github.com/hovsep/fmesh/signal
                           │   base.txt   │              pr.txt               │
                           │    sec/op    │   sec/op     vs base              │
GroupCoWOps-4                59.15µ ±  1%   59.52µ ± 2%       ~ (p=0.505 n=8)
GroupBuild/10-4              2.016µ ±  1%   2.000µ ± 1%       ~ (p=0.199 n=8)
GroupBuild/100-4             37.23µ ±  1%   37.06µ ± 1%       ~ (p=0.169 n=8)
GroupBuild/1000-4            1.916m ± 11%   1.977m ± 4%       ~ (p=0.442 n=8)
GroupBuild/10000-4           609.5m ±  2%   630.6m ± 4%  +3.46% (p=0.021 n=8)
GroupPayloadSize/8-4         1.044µ ±  1%   1.069µ ± 1%  +2.35% (p=0.000 n=8)
GroupPayloadSize/1024-4      1.045µ ±  1%   1.065µ ± 4%       ~ (p=0.314 n=8)
GroupPayloadSize/65536-4     1.040µ ±  0%   1.028µ ± 0%  -1.15% (p=0.001 n=8)
GroupPayloadSize/1048576-4   1.106µ ±  1%   1.077µ ± 1%  -2.67% (p=0.000 n=8)
geomean                      26.53µ         26.71µ       +0.69%

                           │   base.txt   │                pr.txt                │
                           │     B/op     │     B/op      vs base                │
GroupCoWOps-4                83.77Ki ± 0%   83.77Ki ± 0%       ~ (p=1.000 n=8) ¹
GroupBuild/10-4              2.789Ki ± 0%   2.789Ki ± 0%       ~ (p=1.000 n=8) ¹
GroupBuild/100-4             101.9Ki ± 0%   101.9Ki ± 0%       ~ (p=1.000 n=8) ¹
GroupBuild/1000-4            8.355Mi ± 0%   8.355Mi ± 0%  -0.00% (p=0.020 n=8)
GroupBuild/10000-4           819.3Mi ± 0%   819.3Mi ± 0%       ~ (p=0.981 n=8)
GroupPayloadSize/8-4         1.570Ki ± 0%   1.570Ki ± 0%       ~ (p=1.000 n=8) ¹
GroupPayloadSize/1024-4      1.570Ki ± 0%   1.570Ki ± 0%       ~ (p=1.000 n=8) ¹
GroupPayloadSize/65536-4     1.570Ki ± 0%   1.570Ki ± 0%       ~ (p=1.000 n=8) ¹
GroupPayloadSize/1048576-4   1.570Ki ± 0%   1.570Ki ± 0%       ~ (p=1.000 n=8) ¹
geomean                      46.61Ki        46.61Ki       -0.00%
¹ all samples are equal

                           │  base.txt   │               pr.txt                │
                           │  allocs/op  │  allocs/op   vs base                │
GroupCoWOps-4                1.129k ± 0%   1.129k ± 0%       ~ (p=1.000 n=8) ¹
GroupBuild/10-4               89.00 ± 0%    89.00 ± 0%       ~ (p=1.000 n=8) ¹
GroupBuild/100-4              899.0 ± 0%    899.0 ± 0%       ~ (p=1.000 n=8) ¹
GroupBuild/1000-4            9.743k ± 0%   9.743k ± 0%       ~ (p=1.000 n=8) ¹
GroupBuild/10000-4           99.76k ± 0%   99.76k ± 0%       ~ (p=1.000 n=8)
GroupPayloadSize/8-4          23.00 ± 0%    23.00 ± 0%       ~ (p=1.000 n=8) ¹
GroupPayloadSize/1024-4       23.00 ± 0%    23.00 ± 0%       ~ (p=1.000 n=8) ¹
GroupPayloadSize/65536-4      23.00 ± 0%    23.00 ± 0%       ~ (p=1.000 n=8) ¹
GroupPayloadSize/1048576-4    23.00 ± 0%    23.00 ± 0%       ~ (p=1.000 n=8) ¹
geomean                       307.5         307.5       -0.00%
¹ all samples are equal

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant