Skip to content

Save resources by parking extra goroutines

Choose a tag to compare

@alphadose alphadose released this 04 May 10:18
· 196 commits to main since this release

In previous version of ZenQ, the tests timed out in cases of a million number of goroutines but this is handled in this version by parking extra goroutines

name                                     old time/op    new time/op    delta
_Chan_NumWriters1_InputSize600-8           23.2µs ± 0%    24.2µs ± 0%   ~     (p=1.000 n=1+1)
_ZenQ_NumWriters1_InputSize600-8           16.3µs ± 0%    16.7µs ± 0%   ~     (p=1.000 n=1+1)
_Chan_NumWriters3_InputSize60000-8         5.55ms ± 0%    6.19ms ± 0%   ~     (p=1.000 n=1+1)
_ZenQ_NumWriters3_InputSize60000-8         2.80ms ± 0%    2.85ms ± 0%   ~     (p=1.000 n=1+1)
_Chan_NumWriters8_InputSize6000000-8        694ms ± 0%     730ms ± 0%   ~     (p=1.000 n=1+1)
_ZenQ_NumWriters8_InputSize6000000-8        446ms ± 0%     421ms ± 0%   ~     (p=1.000 n=1+1)
_Chan_NumWriters100_InputSize6000000-8      1.59s ± 0%     1.60s ± 0%   ~     (p=1.000 n=1+1)
_ZenQ_NumWriters100_InputSize6000000-8      490ms ± 0%     736ms ± 0%   ~     (p=1.000 n=1+1)
_Chan_NumWriters1000_InputSize7000000-8     1.97s ± 0%     1.97s ± 0%   ~     (p=1.000 n=1+1)
_ZenQ_NumWriters1000_InputSize7000000-8     769ms ± 0%    1052ms ± 0%   ~     (p=1.000 n=1+1)


name                                     old alloc/op   new alloc/op   delta
_Chan_NumWriters1_InputSize600-8            0.00B          0.00B        ~     (all equal)
_ZenQ_NumWriters1_InputSize600-8            0.00B          0.00B        ~     (all equal)
_Chan_NumWriters3_InputSize60000-8          63.0B ± 0%     96.0B ± 0%   ~     (p=1.000 n=1+1)
_ZenQ_NumWriters3_InputSize60000-8          44.0B ± 0%      0.0B        ~     (p=1.000 n=1+1)
_Chan_NumWriters8_InputSize6000000-8       1.76kB ± 0%    0.24kB ± 0%   ~     (p=1.000 n=1+1)
_ZenQ_NumWriters8_InputSize6000000-8       1.52kB ± 0%    0.31kB ± 0%   ~     (p=1.000 n=1+1)
_Chan_NumWriters100_InputSize6000000-8     51.2kB ± 0%    35.9kB ± 0%   ~     (p=1.000 n=1+1)
_ZenQ_NumWriters100_InputSize6000000-8     5.27kB ± 0%   18.94kB ± 0%   ~     (p=1.000 n=1+1)
_Chan_NumWriters1000_InputSize7000000-8     492kB ± 0%     492kB ± 0%   ~     (p=1.000 n=1+1)
_ZenQ_NumWriters1000_InputSize7000000-8    16.6kB ± 0%    34.3kB ± 0%   ~     (p=1.000 n=1+1)

name                                     old allocs/op  new allocs/op  delta
_Chan_NumWriters1_InputSize600-8             0.00           0.00        ~     (all equal)
_ZenQ_NumWriters1_InputSize600-8             0.00           0.00        ~     (all equal)
_Chan_NumWriters3_InputSize60000-8           0.00           0.00        ~     (all equal)
_ZenQ_NumWriters3_InputSize60000-8           0.00           0.00        ~     (all equal)
_Chan_NumWriters8_InputSize6000000-8         5.00 ± 0%      2.00 ± 0%   ~     (p=1.000 n=1+1)
_ZenQ_NumWriters8_InputSize6000000-8         3.00 ± 0%      1.00 ± 0%   ~     (p=1.000 n=1+1)
_Chan_NumWriters100_InputSize6000000-8        163 ± 0%       147 ± 0%   ~     (p=1.000 n=1+1)
_ZenQ_NumWriters100_InputSize6000000-8       12.0 ± 0%      49.0 ± 0%   ~     (p=1.000 n=1+1)
_Chan_NumWriters1000_InputSize7000000-8     1.81k ± 0%     1.77k ± 0%   ~     (p=1.000 n=1+1)
_ZenQ_NumWriters1000_InputSize7000000-8      40.0 ± 0%     357.0 ± 0%   ~     (p=1.000 n=1+1)