swoole提高系统性能和并发的特性
2020-05-26 本文已影响0人
一个小废材
swoole提升性能的几个特性。
提高性能
1·系统常驻内存
基于swoole的程序是常驻内存的程序,在启动时就将系统框架等代码读取并编译完成,不需要每次请求时都执行编译的步骤,可以大大的降低脚本的运行时间。
2·连接池
php-fpm 模式的php因为每次 请求结束时都会销毁所有的资源,所以无法正常使用连接池。但是基于swoole的程序是常驻内存模式,可以通过连接池的方式来加速程序。使用连接池一方面可以降低程序的响应时间,同时可以有效的保护后端资源。
3·可以利用协程处理后端的并行io
我们开发的时候经常会遇到一个请求要查询多块数据,每个数据之间都需要占用比较长的时间,常规的php-fpm模式因为是阻塞模式运行,无法对这类业务进行很好的加速。但是基于swoole的程序,可以将这类请求协程化处理,并行的去请求后端数据源,将原本sum(a+b+c)的时间变成接近max(a, b, c)。能够大大的优化此类业务。
下图是我基于hyperf框架的“Parallel 特性”做的一个测试。
阻塞模式 协程化 阻塞模式的时间消耗 协程化处理的时间消耗
提高并发
1·协程处理网络请求
swoole为每一次的网络请求建立起一个协程,可以很大程度的提高系统的并发。
2·master进程中reactor基于epoll处理网络请求
swoole在process