在此前的另外一篇文章讨论过 opcache:php 性能优化之opcache - 让你的php性能提升 50%

再来复习一下吧,导致 php 慢的各种因素中解析性语言的特性可以说是罪魁祸首,再加上,每次请求完都释放请求时所加载的全部文件,因此也就显得更慢了。

后来我们有了 opcache,使用这个的话,请求时间大概会缩短到原来的一半,但是我们会发现其实花的时间看起来还是很多。

这是为什么呢?原因在于,opcache 只是省去了解析文件的时间,实际运行的时候,我们还是需要去把相同的代码又跑一遍,具体我们可以看下图:

我们假设一下,如果我们的代码跑了一遍,不释放的话,那么下次再跑的时候不就可以节省了这重复的时间?的确是的。

下面开始正题:

1、安装 laravel-swoole 扩展

composer require swooletw/laravel-swoole

  

2、swoole 扩展当然是必不可少的

pecl install swoole

  需要在安装完 swoole 扩展之后加到 php.ini 中,不赘述

3、在 config/app.php 服务提供者数组添加该服务提供者:

SwooleTW\Http\LaravelServiceProvider::class,

  

4、现在,你可以执行以下的命令来启动 Swoole HTTP 服务。

php artisan swoole:http start

  

ab 测试

测试环境:ubuntu 18.04,4核8线程 2.7~3.5GHz cpu,8G内存,120G SSD

测试结果:

ab参数:ab -n 1000 -c 100

我们发现 Time per request 是 2.512ms,当然,这只是一个简单的请求,不涉及数据库查询。总的来说,表现是要比 opcache 要好的,但这个毕竟是野路子,有多少坑我们不得而知,目前也不太了解是否有把这个用于生产环境的,但是这个思路其实真的很不错,最后期待一下 php 官方把这个作为研究方向

使用 swoole 加速你的 laravel的更多相关文章

  1. 如何通过swoole加速laravel的问题?

    这篇文章主要介绍了关于如何使用swoole加速laravel,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 再来复习一下吧,导致 php 慢的各种因素中解析性语言的特性可以说是罪魁祸首 ...

  2. 使用 Swoole 加速你的 CMS 系统,并实现热更新 (基于 Laravel 框架)

    主题:使用 Swoole 加速你的 CMS 系统,并实现热更新 关于 Swoole 的简介不再在此赘述,各位可以自行查看官网的文档进行详细的了解. 本文以 MyCms 为例,简要说明 Swoole 结 ...

  3. 使用 Swoole 加速你的 CMS 系统

    项目介绍 MyCms是一款基于Laravel开发的开源免费的自媒体博客CMS系统,适用于个人网站及企业网站开发使用,助力个人开发者知识技术变现 Swoole介绍 Swoole: PHP的异步.并行.高 ...

  4. 使用Swoole加速Laravel(正式环境中)

    1 Laravel的速度瓶颈在哪? 1.1 已有的一些优化方法 1.1.1 laravel官方提供了一些优化laravel的优化方法 php artisan optimize php artisan ...

  5. 使用 Swoole 来加速你的 Laravel 应用

    Swoole 是为 PHP 开发的生产级异步编程框架. 他是一个纯 C 开发的扩展, 他允许 PHP 开发者在 PHP 中写 高性能,可扩展的并发 TCP, UDP, Unix socket, HTT ...

  6. LaravelS - 基于Swoole加速Laravel/Lumen

    LaravelS LaravelS是一个胶水项目,用于快速集成Swoole到Laravel或Lumen,然后赋予它们更好的性能.更多可能性.Github 特性 内置Http/WebSocket服务器 ...

  7. laravels -- Swoole加速php

    LaravelS是一个胶水项目,用于快速集成Swoole到Laravel,然后赋予它们更好的性能.更多可能性. 环境 : ubuntu16 + nginx + php7.1 + LaravelS搭建高 ...

  8. laravel 整合 swoole ,并简单 ab 测试对比性能以及在 PHPstorm 中利用debug调试配置swoole服务中的PHP代码

    安装PHP 的 swoole 扩展 及 安装 laravel,就不描述了 整合 laravel 和 swoole 用了这个轮子,侵入性很小,一行代码搞定,推荐一下,今天刚用,不能预测未来是否会遇见坑 ...

  9. laravel扩展推荐

    1. Intervention/image 图片处理 2.Laravel User Agent 轻松识别客户端信息 3.OAuth 2.0 支持 4.页面面包屑工具 5.计划任务分发器(直接可替换掉 ...

随机推荐

  1. ES6----Proxy(一)

    Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程. 听起来好像很绕,可以简单这样理解,Proxy相当于 ...

  2. Python之并发编程-IO模型

    目录 一.IO模型介绍二.阻塞IO(blocking IO)三.非阻塞IO(non-blocking IO)四.多路复用IO(IO multiplexing)五.异步IO(Asynchronous I ...

  3. 利用原生Javascript实现计算器(未完待续)

    这里,将记录我升级四则运算v1.2的整个过程. 环境检测,杨说检测环境也是可以高兴到手舞足蹈的一件事. 为了实现自动化,Testing,查阅相关资料,我这里使用了node(这里为了npm).yoema ...

  4. 获取session

    HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()) ...

  5. Daily Scrum 11.18

    今日完成任务: 1.在提问问题的时候为问题创建索引 2.解决了修改个人资料后刷新没有更新的问题 3.初步加入了采纳功能(没完善UI设计) 遇到困难:创建索引之后,跳转到主页,需要重新登录,找了半天不知 ...

  6. Daily Scrumming 2015.10.21(Day 2)

    今明两天任务表 Member Today’s Task Tomorrow’s Task 江昊 配置ruby与rails环境 配置mysql与数据库用户管理 配置apache2环境 学习rails Ac ...

  7. MathExam作业

    作业 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 50 40 • Estimate • ...

  8. angularJS1笔记-(16)-模块里的constant、value、run

    index.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  9. iOS App之间常用的五种通信方式及适用场景总结

    iOS系统是相对封闭的系统,App各自在各自的沙盒(sandbox)中运行,每个App都只能读取iPhone上iOS系统为该应用程序程序创建的文件夹AppData下的内容,不能随意跨越自己的沙盒去访问 ...

  10. Scrum Meeting Beta - 10

    Scrum Meeting Beta - 10 NewTeam 2017/12/11 地点:新主楼F座二楼 任务反馈 团队成员 完成任务 计划任务 安万贺 完成了作业详情的本地存储Issue #165 ...