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库。

     

     

  • 相关阅读:
    七种数据类型
    js字符串解析成数字
    html节点操作与事件
    form表单的默认提交行为
    CSS中的各种width(宽度)
    Javascript读写CSS属性
    ECMAScript6新特性之Reflect
    ECMAScript6新特性之String API
    ECMAScript6新特性之Array API
    判断Javascript对象是否为空
  • 原文地址:https://www.cnblogs.com/titer1/p/2004405.html
Copyright © 2011-2022 走看看