线程、协程支持对比
线程 | 协程 | |
php-fpm中的worker | 单线程 | 单协程 |
swoole中的worker | 单线程 | 多协程 |
内存对比
php-fpm中的worker | 每次请求都会加载所有文件,处理请求完毕后释放内存 |
swoole中的worker | 常驻内存,只有第一次请求会加载所有文件,第n次请求直接从内存中获取公用文件(路由、配置文件等),接着只需要调用回调函数即可(这个过程是需要申请内存的) |
注意:因为公用文件只会加载一次,所以在公用文件中定义的全局变量是不变的,除非你在回调函数中改变其值。
性能对比
php-fpm中的worker | 只能同时处理一个请求 |
swoole中的worker | 可以同时处理多个请求(遇到耗时IO操作可以分发给taskWorker处理) |