diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2021-02-03 16:54:45 +0100 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2021-02-03 16:59:29 +0100 |
commit | c3bde5f59099a3b21b016bf809b83ee3de126f80 (patch) | |
tree | 35167c928fd71b19d6524beb24c395a4bcefb9c2 /conn/conn_linux.go | |
parent | fd63a233c9fedad2be4e26edbc540e11d9ea5968 (diff) | |
download | wireguard-go-c3bde5f59099a3b21b016bf809b83ee3de126f80.tar.gz wireguard-go-c3bde5f59099a3b21b016bf809b83ee3de126f80.zip |
device: benchmark the waitpool to compare it to the prior channels
Here is the old implementation:
type WaitPool struct {
c chan interface{}
}
func NewWaitPool(max uint32, new func() interface{}) *WaitPool {
p := &WaitPool{c: make(chan interface{}, max)}
for i := uint32(0); i < max; i++ {
p.c <- new()
}
return p
}
func (p *WaitPool) Get() interface{} {
return <- p.c
}
func (p *WaitPool) Put(x interface{}) {
p.c <- x
}
It performs worse than the new one:
name old time/op new time/op delta
WaitPool-16 16.4µs ± 5% 15.1µs ± 3% -7.86% (p=0.008 n=5+5)
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'conn/conn_linux.go')
0 files changed, 0 insertions, 0 deletions