English | 中文
Shadowfax是一个Laravel拓展包,它可以让你的Laravel应用运行在Swoole之上,以获得巨大的性能提升。
- 不破坏Laravel的开发体验,让Laravel程序在Swoole与PHP-FPM上都能运行
- 可放心地启用协程特性
- 无感知地使用数据库/Redis连接池
更多特性请阅读《完整文档》。
使用Composer将Shadowfax安装到Laravel项目中:
composer require huang-yi/shadowfax
再用Artisan命令shadowfax:publish
发布配置文件:
php artisan shadowfax:publish
最后执行Shadowfax命令start
启动服务器:
php shadowfax start
现在,你就可以通过http://127.0.0.1:1215
来访问你的项目了。
我们使用开源软件wrk进行压力测试。
- 硬件: 1 CPU, 4 Cores, 16GB Memory
- MacOS 10.15.3
- PHP 7.3.12(启用opcache)
- Swoole 4.4.13
- Laravel 7(无session中间件)
- Shadowfax 2.0.0(20个worker进程)
wrk启动4个线程,并发200进行压测:
wrk -t4 -c200 http://127.0.0.1:1215/
结果为12430.20rps:
Running 10s test @ http://127.0.0.1:1215/
4 threads and 200 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 26.44ms 31.44ms 212.73ms 84.28%
Req/Sec 3.13k 839.99 6.07k 65.75%
124418 requests in 10.01s, 312.06MB read
Socket errors: connect 0, read 54, write 0, timeout 0
Requests/sec: 12430.20
Transfer/sec: 31.18MB
- 硬件: 2 CPUs, 2 Cores, 4GB Memory
- CentOS 7.5.1804
- PHP 7.3.16(启用opcache)
- Swoole 4.4.17
- Laravel 7(无session中间件)
- Shadowfax 2.0.0(10个worker进程)
wrk启动2个线程,并发100进行压测:
wrk -c100 http://127.0.0.1:1215/
结果为4001.76rps:
Running 10s test @ http://127.0.0.1:1215/
2 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 25.06ms 12.11ms 85.92ms 60.94%
Req/Sec 4.02k 41.46 4.08k 79.79%
40321 requests in 10.08s, 101.13MB read
Requests/sec: 4001.76
Transfer/sec: 10.04MB
composer test
Shadowfax是一个开源软件,遵循MIT协议。