Skip to content

webman 性能

传统框架请求处理流程

  1. nginx/apache 接收请求
  2. nginx/apache 将请求传递给 php-fpm
  3. php-fpm 初始化环境,如创建变量列表
  4. php-fpm 调用各个扩展 / 模块的 RINIT
  5. php-fpm 磁盘读取 php 文件 (使用 opcache 可避免)
  6. php-fpm 词法分析、语法分析、编译成 opcode (使用 opcache 可避免)
  7. php-fpm 执行 opcode 包括 8.9.10.11
  8. 框架初始化,如实例化各种类,包括如容器、控制器、路由、中间件等。
  9. 框架连接数据库并权限验证,连接 redis
  10. 框架执行业务逻辑
  11. 框架关闭数据库、redis 连接
  12. php-fpm 释放资源、销毁所有类定义、实例、销毁符号表等
  13. php-fpm 顺序调用各个扩展 / 模块的 RSHUTDOWN 方法
  14. php-fpm 将结果转发给 nginx/apache
  15. nginx/apache 将结果返回给客户端

webman 的请求处理流程

  1. 框架接收请求
  2. 框架执行业务逻辑 (opcode 字节码)
  3. 框架将结果返回给客户端

没错,在没有 nginx 反代的情况下,框架只有这 3 步。可以说这已经是 php 框架的极致,这使得 webman 性能是传统框架的几倍甚至数十倍。

更多参考 压力测试

基于 MIT 许可发布