池化技术
核心思想:用空间换时间,期望使用预先创建好的对象来减少频繁创建对象的性能开销,同时还统一管理了对象,降低了对象的使用成本。
例子:
(1)数据库连接池-最小数量、最大数量、如果超过最大则等待
(2)线程池-最小数量、最大数量、有界队列(监控队列中元素的个数)
线程池大小:区分IO密集、CPU密集
(3)内存池
超时事件管理
IO模型
线程模型,一般会综合考虑IO模型、超时事件如何管理、线程池、消息队列等
topic 高性能服务设计
设计思想
内存池
资源管理
对于服务器框架而言,有哪些需要管理的资源?
- 内存
- 内存池的设计关键
- 客户端连接
1. - Request & Response
- 线程
同步 OR 异步
阻塞 OR 非阻塞
线程 OR 进程
谁来接收client连接
某一个固定的线程(进程) 还是 几个线程(进程)轮着来?
接收到连接之后,如何处理?
自己处理 还是 交给其他人处理?
accept —> recv ——> send —->