• linux 高性能服务器编程


    1. 高性能定时器:时间轮,时间堆 (處理超時時間,如nginx使用紅黑樹,找出最可能超時的事件)

    2. 高性能服务器程序框架:(nginx 使用的是基於事件模型,epoll,不阻塞,異步處理)

    两种高效的事件处理模式: Reactor模式 Proactor模式

    两种高效的并发模式:半同步/半异步模式  领导者/追随者模式

    有限状态机

    提高服务器性能的其他建议:池(如nginx,在得到一個連接時,會創建ngx_connection_t;  在得到一份請求的時,會創建ngx_request_t; 這些結構體的分配都在ngx_pool_t上分配,但請求完畢時或斷開連接時,釋放ngx_pool_t; 免除了多次使用malloc和free,且ngx_pool_t可重用)数据复制,上下文切换和锁 (nginx worker process 綁定cpu, 省去上下文切換;鎖,在各個worker process shared 數據使用自旋鎖,如ngx_http_limit_req_module, 記錄每個ip的請求次數,這些信息各個進程是共享的)

    3.进程池和线程池 (基於事件驅動,綁定cpu,高效;支持線程池,為了支持第三方的庫,可能有阻塞I/O操作,或者寫第三方模塊的沒注意處理事件驅動,有導致主線程阻塞的行為)

  • 相关阅读:
    一个实用的JS自定义函数addLoadEvent()
    Vim快捷键分类(二)
    Vim快捷键分类(一)
    变量的作用域
    高效整洁CSS代码原则 (上)
    高效整洁CSS代码原则 (下)
    OpenGL 函数作用列表
    glViewport()函数和glOrtho()函数的理解
    车辆动力学基础(1)
    OpenGL: glFlush 和glSwapBuffer
  • 原文地址:https://www.cnblogs.com/hzhida/p/4657847.html
Copyright © 2020-2023  润新知