Laravel 框架的作者 Taylor Otwell 在推特上对 Swoole 进行了感谢。
同时也带来了一些信息:
Laravel 在对 Swoole 进行集成!
@taylorotwell 向《Laracon Online 2021》的参加者展示了 Laravel Octane
在大约 50 个并发请求下,Octane 使用 Swoole Server 在 hello world
的示例中。每秒响应 6000+次请求
而在 web-frameworks 的结果中,Laravel 在 64 个并发请求下,只能响应 900+次请求
也就说大概提升了 6 倍的性能。
它是如何工作的?
Octane 的入口点是 Artisan 控制台命令(octane:start
),它将运行Swoole
或RoadRunner
。您可以根据环境的 CPU 线程指定要使用的技术以及要运行的线程数:
artisan octane:start --workers=8 --server=swoole
Swoole
和RoadRunner
利用协程,通过基于 CPU 内核数 fork 多个 Worker 进程,使 PHP 能够更有效地运行。
使用Swoole/RoadRunner
可以提高应用程序启动效率,并与PHP OPcache
结合使用,可以通过将字节代码存储在共享内存中来最大程度地减少开销。
PHP 进程在请求之间保持活动状态(您可以通过artisan
标志在x
个请求之后循环它们),并准备接收新的请求。消除框架启动时间对于具有大量HTTP
工作负载的应用程序的性能具有重大影响。
目的是什么?
在这些早期的Octane
演示中,典型的应用程序不需要每秒的异常请求。但是,对高可用性 PHP 应用程序的需求是常见的,并且 Laravel 处于独特的地位,以确保框架级代码可与 Swoole 和 Octane 之类的 工具 无缝地协同工作。
Laravel 对这些技术的首次支持将是扩展 PHP 应用程序的现代方法中的重大突破。这些努力将使整个 PHP 生态系统受益。