Linux epoll 之 LT & ET 模式精粹
全面而深入地剖析 Linux epoll 的 LT 和 ET 模式
全面而深入地剖析 Linux epoll 的 LT 和 ET 模式
全面介绍 TCP Keep-Alive 在 Unix 和 Windows 平台上的原理和应用
相信那些曾经使用 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 的性能。因此,我想从这个优化工作出发,分享一些我个人对多线程编程中的一些不成熟的优化思路。
从理论和源码层面全面剖析 Redis 6.0 新引入的多线程网络模型
深入分析 Kafka 为什么快
深度探究 Go 语言的运行时子系统 netpoll
Lucene 入门介绍
如何实现一个高性能的 Goroutine Pool