2021.10.30一些已记录

1.  cpu cache会加载第一次miss之后的连续内存,所以访问内存尽量连续。

如果工作线程不是很消耗cpu,那么网络线程和工作线程绑定到同一个cpu上,会减少cpu cache同步。如果是消费者线程计算密集,或者低延迟,需要独占cpu,觉得还是分开的好

2. 

 

 

 

3. 

epoll_wait 之后,如果有个socket不停的有数据到来,缓冲区里有数据,不用触发下一次epoll_wait,可以一直接收数据,那么
1. 如果是多个socket返回数据,一直在接收第一个socket的数据,其他的socket不是没有机会处理
2. socket的缓冲区的数据结构 是怎么样的,怎么保证数据有序 连续等

如果吞吐高,并发也要求的话,应该使用lt,每次最多读定量缓存

 

4. 

水平触发:

当我们关注的事件为读事件时,只要缓存中有东西可读,那么就触发;当我们关注的事件为写事件时,只要缓存中有东西可写那么就触发。

边沿触发:

当我们关注的事件为读事件时:1.当由不可读变为可读时会触发(即BUFFE由空到非空)。2.当可读的内容变多时(即有新的数据到来)会触发。

当我们关注的事件为写事件时:1.由不可写变为可写时会触发(即BUFFE由满变为非满)。2.当buffer中的内容变少时(旧数据被发送走)会触发。

 

posted @ 2021-10-30 19:35  caopf  阅读(29)  评论(1编辑  收藏  举报