golang circular buffer 应用
圆形缓冲区(circular buffer),也称作圆形队列(circular queue),循环缓冲区(cyclic buffer),环形缓冲区(ring buffer),是一种用于表示一个固定尺寸、头尾相连的缓冲区的数据结构,适合缓存数据流。
一个golang circular buffer 栗子:
buf, _ := NewBuffer(6)
buf.Write([]byte("hello world"))
if string(buf.Bytes()) != " world" {
panic("should only have last 6 bytes!")
}
Golang circular (ring) buffer https://github.com/armon/circbuf
Ring Buffer 的应用 https://blog.codingnow.com/2012/02/ring_buffer.html
标准库 https://golang.org/pkg/container/ring/#example_Ring_Do
https://github.com/glycerine/rbuf 对于I/O较重的应用程序,用 circbuf 替换了 bytes.Buffer,看到内存消耗从8GB变为25MB、跑得更快。
0
See Also
Nearby
- 上一篇 › golang怎么实现多线程?
- 下一篇 › Go 1.10 出来了,编译速度明显变快