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

     

     

  • 相关阅读:
    BZOJ1029:[JSOI2007]建筑抢修(贪心,堆)
    1054. [HAOI2008]移动玩具【BFS】
    1297. [SCOI2009]迷路【矩阵乘法】
    1192. [HNOI2006]鬼谷子的钱袋【进制】
    2243. [SDOI2011]染色【树链剖分】
    1051. [HAOI2006]受欢迎的牛【强连通分量】
    codevs 2074 营救 WW
    codevs 1191 数轴染色
    codevs 2855 游乐园的迷宫 bfs
    codevs 2806 红与黑
  • 原文地址:https://www.cnblogs.com/titer1/p/2004405.html
Copyright © 2011-2022 走看看