前言 - 项目简介

优质
小牛编辑
133浏览
2023-12-01

EasySwoole 是一款基于Swoole Server 开发的常驻内存型PHP框架,专为API而生,摆脱传统PHP运行模式在进程唤起和文件加载上带来的性能损失。EasySwoole 高度封装了Swoole Server 而依旧维持Swoole Server 原有特性,支持同时混合监听HTTP、自定义TCP、UDP协议,让开发者以最低的学习成本和精力编写出多进程,可异步,高可用的应用服务。

特性:

  • 强大的 TCP/UDP Server 框架,多线程,EventLoop,事件驱动,异步,Worker进程组,Task异步任务,毫秒定时器,SSL/TLS隧道加密
  • EventLoop API,让用户可以直接操作底层的事件循环,将socket,stream,管道等Linux文件加入到事件循环中。

优势:

  • 简单易用开发效率高
  • 并发百万TCP连接
  • TCP/UDP/UnixSock
  • 支持异步/同步/协程
  • 支持多进程/多线程
  • CPU亲和性/守护进程

关于ab基准测试:

  1. 系统: CentOS 7.1(未做系统内核调优)
  2. CPU: 阿里云单核
  3. 内存: 1G
  4. php: 5.6.30
  5. Swoole: 1.9.21
  6. 测试代码: Index控制器中输出"hello world"
  7. ab -c 100 -n 500000 http://127.0.0.1:9501/ 测试结果如下
  8. Server Software: swoole-http-server
  9. Server Hostname: 127.0.0.1
  10. Server Port: 9501
  11. Document Path: /
  12. Document Length: 21 bytes
  13. Concurrency Level: 100
  14. Time taken for tests: 5.808 seconds
  15. Complete requests: 50000
  16. Failed requests: 0
  17. Write errors: 0
  18. Total transferred: 8850000 bytes
  19. HTML transferred: 1050000 bytes
  20. Requests per second: 8608.19 [#/sec] (mean)
  21. Time per request: 11.617 [ms] (mean)
  22. Time per request: 0.116 [ms] (mean, across all concurrent requests)
  23. Transfer rate: 1487.94 [Kbytes/sec] received
  24. Connection Times (ms)
  25. min mean[+/-sd] median max
  26. Connect: 0 1 0.4 1 2
  27. Processing: 2 10 2.5 10 81
  28. Waiting: 1 10 2.4 9 80
  29. Total: 3 12 2.5 12 83
  30. Percentage of the requests served within a certain time (ms)
  31. 50% 12
  32. 66% 12
  33. 75% 12
  34. 80% 12
  35. 90% 12
  36. 95% 13
  37. 98% 13
  38. 99% 13
  39. 100% 83 (longest request)