开发内功修炼@张彦飞开发内功修炼@张彦飞

talk is cheap,
show me the code!

最新发布

网络篇

单线程 Redis 如何做到每秒数万 QPS 的超高处理能力!

张彦飞(@开发内功修炼) 阅读(85)

大家好,我是飞哥!今天开篇先给大家讲个飞哥自己的小故事。我在学校和刚毕业头一年主要从事的客户端开发,那时候对服务器端编程还不擅长。有一次去面试服务器端岗位,面试官问我有一个连接过来,你该怎么编程处理它。我答道:“主线程收到请求后,创建一个子线程处理。” 面试官接着问,那如果有一千个连接同时来呢...

网络篇

在 golang 中是如何对 epoll 进行封装的?

张彦飞(@开发内功修炼) 阅读(97)

在 golang 中是如何对 epoll 进行封装的?在协程没有流行以前,传统的网络编程中,同步阻塞是性能低下的代名词,一次切换就得是 3 us左右的 CPU 开销。各种基于 epoll 的异步非阻塞的模型虽然提高了性能,但是基于回调函数的编程方式却非常不符合人的的直线思维模式。开发出来的代码...

网络篇

漫画 | 看进程小 P 讲述它的网络性能故事!

张彦飞(@开发内功修炼) 阅读(74)

大家好,我是飞哥! 今天给大家带来的是一个漫画故事!01大家好,我是一个进程,我的名字的小 P。 我和很多其它小伙伴一样,都由老大操作系统创建和管理。 要问我是怎么来的,嘘小点声,不能让那帮应用开发们听见。 其实就是内核的开发都认为应用开发是傻逼,怕应用开发的代码把服务器给搞坏。就设计...

网络篇

图解 | 深入揭秘 epoll 是如何实现 IO 多路复用的!

张彦飞(@开发内功修炼) 阅读(119)

进程在 Linux 上是一个开销不小的家伙,先不说创建,光是上下文切换一次就得几个微秒。所以为了高效地对海量用户提供服务,必须要让一个进程能同时处理很多个 tcp 连接才行。现在假设一个进程保持了 10000 条连接,那么如何发现哪条连接上有数据可读了、哪条连接可写了 ?我们当然可以采用循环遍...

网络篇

本机网络IO之Unix Domain Socket与普通socket的性能对比 实验使用源码

张彦飞(@开发内功修炼) 阅读(100)

大家好,我是飞哥!很多读者在看完《127.0.0.1 之本机网络通信过程知多少 ?》这一篇后,让我讲讲 Unix Domain Socket。好了,今天就安排!在本机网络 IO 中,我们讲到过基于普通 socket 的本机网络通信过程中,其实在内核工作流上并没有节约太多的开销。该走的系统调用、...