/go-queue

High-performance lock-free queue (Disruptor 1400/s)

Primary LanguageGo

go-queue

前一久看到一篇文章美团高性能队列——Disruptor,时候自己琢磨了一下;经过反复修改,实现了一个相似的无锁队列EsQueue,该无锁队列相对Disruptor,而言少了队列数量属性quantity的CAP操作,因此性能杠杠的,在测试环境:windows10,Core(TM) i5-3320M CPU 2.6G, 8G 内存,go1.7.4,下性能达到1360-1500万之间。现在把代码发布出来,请同行验证一下,代码如下:

go1.7.4, Grp:   1, Times:   10000000, miss:     0, use:   552.8887ms,     55ns/op 
go1.7.4, Grp:   2, Times:   20000000, miss:     0, use:   1.4554794s,     72ns/op 
go1.7.4, Grp:   3, Times:   30000000, miss:     0, use:   2.2382081s,     74ns/op 
go1.7.4, Grp:   4, Times:   40000000, miss:     0, use:   2.9799835s,     74ns/op 
go1.7.4, Grp:   5, Times:   50000000, miss:     0, use:   3.7434942s,     74ns/op 
go1.7.4, Grp:   6, Times:   60000000, miss:     0, use:   4.4849934s,     74ns/op 
go1.7.4, Grp:   7, Times:   70000000, miss:     0, use:   5.2675198s,     75ns/op 
go1.7.4, Grp:   8, Times:   80000000, miss:     0, use:   6.0115122s,     75ns/op 
go1.7.4, Grp:   9, Times:   90000000, miss:     0, use:   6.7634953s,     75ns/op 
go1.7.4, Grp:  10, Times:   10000000, miss:     0, use:    765.514ms,     76ns/op 
go1.7.4, Grp:  11, Times:   11000000, miss:     0, use:   827.0602ms,     75ns/op 
go1.7.4, Grp:  12, Times:   12000000, miss:     0, use:   907.1067ms,     75ns/op 
go1.7.4, Grp:  13, Times:   13000000, miss:     0, use:   975.6492ms,     75ns/op 
go1.7.4, Grp:  14, Times:   14000000, miss:     0, use:   1.0634071s,     75ns/op 
go1.7.4, Grp:  15, Times:   15000000, miss:     0, use:    1.136756s,     75ns/op 
go1.7.4, Grp:  16, Times:   16000000, miss:     0, use:   1.2058011s,     75ns/op 
go1.7.4, Grp: Sum, Times:  541000000, miss:     0, use:  40.3788689s,     74ns/op