在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时... ...
分类:
其他好文 时间:
2019-12-14 10:01:15
阅读次数:
92
写在前面 select/poll与epoll select/poll模型工作机理 select/poll模型的局限 epoll模型工作机理 epoll的局限 golang中的epoll golang源码中的sysmon函数 小结 参考写在前面上一篇文章并发模型:Actors与CSP简单... ...
分类:
其他好文 时间:
2019-12-14 00:03:54
阅读次数:
125
用户速度体验的1-3-10原则 性能影响 ?有很多研究都表明,性能对用户的行为有很大的影响: ?79%的用户表示不太可能再次打开一个缓慢的网站 ?47%的用户期望网页能在2秒钟以内加载 ?40%的用户表示如果加载时间超过三秒钟,就会放弃这个网站 ?页面加载时间延迟一秒可能导致转换损失7%,页面浏览量 ...
分类:
其他好文 时间:
2019-12-12 01:39:28
阅读次数:
99
Linux操作系统编程开发 预备知识: 1、进程操作:Linux系统是多任务的操作系统,采用进程作为任务调度的单位,进程在Linux系统下的概念是程序代码的一次执行,包括运行的代码和运行需要的数据、参数等资源。 2、进程和程序的区别:一方面:在Linux系统下,进程是程序代码的执行,所以程序是一段运 ...
分类:
系统相关 时间:
2019-12-08 10:27:51
阅读次数:
76
关于epoll和select的区别: 1、epoll和select都是I/O多路复用的技术,都可以实时监听多个I/O事件的状态 2、epoll比select效率更高,主要是基于其操作系统支持的 I/O,事件通知机制,而 select 是基于轮询机制 3、select 能并行支持 I/O 比较小,且无 ...
分类:
其他好文 时间:
2019-12-07 10:50:36
阅读次数:
104
先展示一下简单的go程序,然后分析GO的API和Linux API的关系。像简单的socket概念等就不在这里介绍了,不懂的去百度一下。 server.go package main import "net" import "fmt" import "bufio" import "strings" ...
我们之前采用的多进程方式实现的服务器端,一次创建多个工作子进程来给客户端提供服务。其实这种方式是存在问题的。 可以打个比方:如果我们先前创建的几个进程承载不了目前快速发展的业务的话,是不是还得增加进程数?我们都知道系统创建进程是需要消耗大量资源的,所以这样就会导致系统资源不足的情况。 那么有没有一种 ...
分类:
其他好文 时间:
2019-12-06 17:34:52
阅读次数:
89
什么是Netty?Netty是基于JavaNIO再次封装的一个处理异步的,事件驱动的网络应用程序的框架和工具.Netty来源?异步和事件驱动都是由操作系统发展过来. NIO代表多路复用IO. 最开始操作系统使用的系统调用是Select,性能低下.之后发展为Linux的epoll,和 Unix中的kq ...
分类:
Web程序 时间:
2019-12-05 01:31:55
阅读次数:
127
一、背景 前面介绍了I/O多路复用模型,那有了I/O复用,有了epoll已经可以使服务器并发几十万连接的同时,还能维持比较高的TPS,难道还不够吗?比如现在在使用epoll的时候一般都是起个任务,不断的去巡检事件,然后通知处理,而比较理想的方式是最好能以一种回调的机制,提供一个编程框架,让程序更有结 ...
分类:
其他好文 时间:
2019-11-30 11:23:32
阅读次数:
79
https://juejin.im/post/5ddf2502e51d453301190001 epoll原理 网卡操作内存DMA技术https://zhuanlan.zhihu.com/p/26482371 ...
分类:
其他好文 时间:
2019-11-29 00:48:49
阅读次数:
71