zoukankan      html  css  js  c++  java
  • Unp结课—读书笔记(0.3)

     

    Unp结课读书笔记(0.3)

    Io复用细节

    n       select函数的设计问题

         受限于FD_SETSIZE

         拷贝数据、O(n)的检查、多次检查

    n       poll解决了FD_SETSIZE的问题,但是设计仍然低效

    n       最佳的选择是:epollkqueue

         epoll当前只支持文件上的读、写等事件,eventfdsignalfdtimerfd

         kqueue支持文件添加、删除,AIO,进程fork、终止等,是一种更一般的事件通知机制。

    66注:下图是效率对比                                            clip_image002

    超时处理

    n       三种方法

         alarm

         select

         SO_RCVTIMEOSO_SNDTIMEO选项

    n       alarm采用异步信号机制

    n       select是同步机制

    n       alarmselect在多客户连接的情况下,如何管理?参考ACE

    n       简单的方法,推荐采用SO_RCVTIMEOSO_SNDTIMEO,可惜与实现相关

    零拷贝技术

    n       应用程序àß内核àß网卡,报文零拷贝

    n       底层硬件scatter-gather支持

    n       内核mbuf/skbuf

    n       readvwritevsendfileTCP_CORK (Linux), TCP_NOPUSH (BSD)

    更多的参考

    n       C10K网站、Scalable Network ProgramminglibeventlighttpdBoost asio库、ACE库。

     

     

  • 相关阅读:
    vscode_sync
    外国it视频教学文件
    关于登录状态,后台应该另外做一个接口来决定是否登录
    判断浏览器信息
    file控件预览
    githutb账号密码
    .net core 实践笔记(三)--封装底层
    .net core 实践笔记(二)--EF连接Azure Sql
    .net core 实践笔记(一)--开篇
    SQL引用DAL
  • 原文地址:https://www.cnblogs.com/titer1/p/2004405.html
Copyright © 2011-2022 走看看