最近发布了 Laravel Octane包。 它的创建使 Laravel 对 Swoole 和 RoadRunner 更加友好。 我们在 dev.family中使用 RoadRunner 而不是 php-fpm 已经有一段时间了, 我们决定分享我们的经验并揭示它具有什么优势。

RoadRunner 是一个用 Go 编写的高性能、开源的 PHP 应用服务器。 与 php-fpm 的主要区别在于 RoadRunner 与 php 的常驻进程交互, 不像 php-fpm, 会在每次请求时创建并杀掉一个新的 php 进程。

常驻进程的优点:

  • 没有时间浪费在启动上
  • 没有时间花费在创建数据库的连接上
  • 在进程中直接使用内存缓存的能力

这种方法的缺点是,它并不适合所有 PHP 应用程序,因为通常在编写代码时,会考虑到 PHP 进程在请求之后会终止。因此,您需要能够监视内存泄漏,仔细处理全局状态。因此,遗留项目可能不能在Roadrunner 上启动。

然而,Roadrunner 还有其他有用的功能,比如静态反馈、响应压缩和平衡。典型捆绑包的功能都落在了 nginx 上。如果你使用的是 PHP Roadrunner,则可以在没有它的情况下启动该应用程序(nginx)。

RoadRunner 也很容易扩展。您可以将其组件用于您自己的应用程序服务器并获得机会,例如,您可以使用 websockets 直接在 Go 上处理一些请求。

RoadRunner 本身不是一个新的开发项目,它已经有几年的历史了。但是,有了 Laravel Octane 的官方支持,您可以确定该框架已经准备好使用它。

我们在一个真实的项目上做了一个小测试,比较了 php-fpm 和 roadrunner 的速度。 结果如下:

php-fpm:
plain text: 1150 RPS
single query: 530 RPS

roadrunner:
plain text: 2200 RPS
single query: 1600 RPS

plain text -- 返回常量 JSON 的查询
single query -- 将单个查询的结果以 JSON 格式返回到数据库的查询

速度有显提高,这是由于缺乏启动时间和使用了与数据库的永久连接。

使用 Roadrunner 为 PHP 程序加速相关推荐

  1. php roadrunner,使用RoadRunner 加速 Laravel 应用

    这篇文章主要介绍了关于使用RoadRunner 加速 Laravel 应用,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 RoadRunner是一个用Go语言实现的高性能PSR-7服务 ...

  2. matlab您的安装可能需要执行其他配置步骤_手把手超详细介绍MATLAB+RoadRunner+Unreal Engine自动驾驶联合仿真...

    RoadRuner是MathWorks新收购的自动驾驶场景构建工具,Unreal Engine是商业游戏引擎.RoadRunner创建驾驶场景,导入到Unreal Engine,与Simulink联合 ...

  3. python如何并发运行2个软件_如何利用并发性加速你的python程序(二):I/O 绑定程序加速...

    原标题:如何利用并发性加速你的python程序(二):I/O 绑定程序加速 雷锋网 AI 科技评论按,本文是工程师 Jim Anderson 分享的关于「通过并发性加快 python 程序的速度」的文 ...

  4. Ubuntu18.04使用Carla导入RoadRunner自建地图并使用

    环境: Ubuntu 18.04 源码编译搭建的Carla1 版本为0.9.12 UnrealEngine_4.26 Carla和UE4的版本一定要适配!!! python3.9 1 RoadRunn ...

  5. RoadRunner中自建地图并作为Carla Map笔记

    导语 最近在做Carla的仿真,之前一直在官方提供的地图中训练测试,因为项目需要,考虑自己建一个地图进行训练测试.刚刚终于走通了整个流程,从RoadRunner到CarlaUE4,中间还是有一些坑的. ...

  6. 2GB Turbo Memory(迅盘)开启Dashboard(自定义程序加速)的方法

    最近把机器上的1G原装迅盘送人了,自己淘了一个2G的回来. 听说2G迅盘开启ReadyBoost的作用不大,但是可以通过一种方法,强制打开Dashboard,实现4G迅盘才能有的自定义程序加速功能. ...

  7. oracle roadrunner,Dreamweaver CS3 For ASP 数据库连接

    序必须通过开放式数据库连接 (ODBC) 驱动程序(或对象链接)和嵌入式数据库 (OLE DB) 提供程序连接到数据库.该驱动程序或提供程序用作解释器,能够使 Web 应用程序与数据库进行通信.下表显 ...

  8. 如何利用并发性加速你的python程序(二):I/O 绑定程序加速

    雷锋网 AI 科技评论按,本文是工程师 Jim Anderson 分享的关于「通过并发性加快 python 程序的速度」的文章的第二部分,主要内容是 I/O 绑定程序加速相关. 在上一篇中,我们已经讲 ...

  9. 如何利用并发性加速你的python程序(二):I/O 绑定程序加速...

    雷锋网 AI 科技评论按,本文是工程师 Jim Anderson 分享的关于「通过并发性加快 python 程序的速度」的文章的第二部分,主要内容是 I/O 绑定程序加速相关. 在上一篇中,我们已经讲 ...

  10. golang roadrunner中文文档(一)基础介绍

    2021年5月24日14:34:05 golang roadrunner中文文档(一)基础介绍 golang roadrunner中文文档(二)PHP Workers golang roadrunne ...

最新文章

  1. MySQL内部开发人员如何看待MySQL组复制?
  2. JS中通过call方法实现继承
  3. 全国计算机证件照要露耳朵吗,结婚证照片要露耳朵么 结婚登记照露一只耳朵行吗...
  4. Java多线程(7)--线程池创建线程
  5. 打不开磁盘“D:\CentOS7\CentOS7.vmdk”或它所依赖的某个快照磁盘。
  6. mysql key value 引擎_mysql集成的key-value引擎-个人翻译
  7. python apscheduler 脚本 动态_用apscheduler写python定时脚本
  8. 第5章--电商项目-mysql实战--数据库主从配置
  9. 概率论与数理统计(第四版) 第二章:随机变量及其分布(第一节和第二节笔记)
  10. PHP和原生JS实现九型人格在线测试(144题)
  11. 创客匠人:怎么用微信小程序直播?
  12. Mac中ElasticSearch安装
  13. iOS闪退日志的收集和解析
  14. 读书笔记《深度学习与图像识别原理与实践 大白话讲解对小白易懂》2022-8-5
  15. 使用ASProfile分析可变剪切事件
  16. 微信如何查看是否被删好友,这4种方法简单快捷!
  17. python 中文显示乱码如何处理
  18. 一文读懂云函数 SCF 如何进行依赖安装(下)
  19. 计算机二级怎么删除空行,计算机二级国考Word题删除空行的小贴士
  20. 2006年5月23号 12点

热门文章

  1. 事关美亚柏科未来发展!智慧城市建设注入新动力
  2. 最全常用Linux命令升级及面试必备
  3. 公司邮箱地址格式是什么?邮箱地址怎么写?邮箱地址大全
  4. awk及sum求和!
  5. 在LCD液晶屏成功显示图片
  6. OLT、ONU、路由器和交换机区别
  7. 应用程序无法正常启动(0x000007b)或者找不到dll文件(以vcruntime140d.dll为例)的原因原理分析和解决方法(亲测已解决)
  8. 基于Excel的实验室设备管理系统设计
  9. Legion使用:半自动化网络渗透工具
  10. 祖玛游戏3D版源代码