Announcing gnet v2.6.0

The gnet v2.6.0 is officially released! The two major updates in this release are feat: support configurable I/O chunk to drain at a time in edge-trig


Announcing gnet v2.5.0

The v2.5.0 for gnet is officially released! The two major updates in this release are feat: support edge-triggered I/O and


Announcing gnet v2.3.0

Today, I'm thrilled to announce the official release of gnet v2.3.0. P.S. Follow me on Twitter @panjf2000 to get the latest updates about gnet! Intro


Announcing gnet v2.0.0

Today, I'm thrilled to announce the release of gnet v2.0.0, in which we've made plenty of significant improvements and optimizations: added and remove


Go 语言中的零拷贝优化

相信那些曾经使用 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 的性能。因此,我想从这个优化工作出发,分享一些我个人对多线程编程中的一些不成熟的优化思路。