一个优秀的开源项目之死
gogo-protobuf 正在死亡
gogo-protobuf 正在死亡
Go Address Sanitizer 初步介绍
gnet client is now available for production! Features Add a new event handler: AfterWrite() 6a654c Implement the gnet client
Enhancements About poller By default, gnet utilizes the standard package golang.org/x/sys/unix to implement pollers with epoll or kqueue, where a HASH
Features Move the logging module out of the internal package and refactor to make it serviceable for users d56606 b6b1cf
相信那些曾经使用 Go 写过 proxy server 的同学应该对 io.Copy()/io.CopyN()/io.CopyBuffer()/io.ReaderFrom 等接口和方法不陌生,它们是使用 Go 操作各类 I/O 进行数据传输经常需要使用到的 API,其中基于 TCP 协议的 socket 在使用上述接口和方法进行数据传输时利用到了 Linux 的零拷贝技术 sendfile 和 splice。 我前段时间为 Go 语言内部的 Linux splice 零拷贝技术做了一点优化:为 splice 实现了一个 pipe pool,复用管道,减少频繁创建和销毁 pipe buffers 所带来的系统开销,理论上来说能够大幅提升 Go 的 io 标准库中基于 splice 零拷贝实现的 API 的性能。因此,我想从这个优化工作出发,分享一些我个人对多线程编程中的一些不成熟的优化思路。
Go 编译器初探
剖析计算机虚拟内存的核心原理和应用
Features Support TCP_NODELAY socket option 525df8 Implement the lock-free queue for dispatching tasks faster #181 Enhancements Shrink the ring-buffer
从理论和源码层面全面剖析 Redis 6.0 新引入的多线程网络模型