成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用 Swoole 加速 Laravel

didikee / 559人閱讀

摘要:因?yàn)闉閱蝹€(gè)請(qǐng)求創(chuàng)建的環(huán)境將在請(qǐng)求過程完成后立即銷毀??梢猿蔀閺?qiáng)大的性能增強(qiáng)器,提供了優(yōu)雅的結(jié)構(gòu)和代碼使用方式。你可以使用此命令快速安裝它,并訪問官方網(wǎng)站獲取更多信息。注意目前僅支持和。服務(wù)器不能使用?;鶞?zhǔn)測(cè)試使用進(jìn)行干凈的測(cè)試。

Swoole 是針對(duì)PHP的生產(chǎn)級(jí)異步編程框架。它是一種用純C語言編寫的PHP擴(kuò)展,它使PHP開發(fā)人員能夠在PHP中編寫高性能,可擴(kuò)展的并發(fā)TCP,UDP,Unix套接字,HTTP,WebSocket服務(wù),而無需太多的非阻塞I/O編程和Linux內(nèi)核知識(shí)。 你可以將Swoole想象成NodeJS,但是對(duì)于PHP來說,性能更高。

為什么要在Swoole上運(yùn)行Laravel

下圖說明了PHP中的生命周期。 正如你所看到的,當(dāng)你每次運(yùn)行php腳本時(shí),PHP都需要初始化模塊并為你的運(yùn)行環(huán)境啟動(dòng)Zend Engine。 并且你的PHP腳本需要編譯為OpCodes以供Zend Engine執(zhí)行。

但是,這個(gè)生命周期需要在每個(gè)請(qǐng)求中重復(fù)一遍。因?yàn)闉閱蝹€(gè)請(qǐng)求創(chuàng)建的環(huán)境將在請(qǐng)求過程完成后立即銷毀。

換句話說,在傳統(tǒng)的PHP生命周期中,它浪費(fèi)了大量時(shí)間為腳本執(zhí)行構(gòu)建和銷毀資源。 想象一下像 Laravel 這樣的框架,需要為一個(gè)請(qǐng)求加載多少個(gè)文件? 加載文件也有很多I/O消耗。

那么如果我們?cè)赟woole之上有一個(gè)內(nèi)置的服務(wù)器,并且所有的腳本可以在第一次加載后保存在內(nèi)存中呢? 這就是我們?cè)噲D在Swoole上運(yùn)行Laravel的原因。 Swoole可以成為強(qiáng)大的性能增強(qiáng)器,Laravel提供了優(yōu)雅的結(jié)構(gòu)和代碼使用方式。 這是一個(gè)完美的組合!

安裝

以下是 swooletw/laravel-swoole 的主要特點(diǎn):

在Swoole上運(yùn)行 Laravel/Lumen 應(yīng)用程序

卓越的性能提升至 30倍

沙箱模式隔離應(yīng)用程序容器

支持在Laravel中運(yùn)行WebSocket服務(wù)器

支持Socket.io協(xié)議

支持Swoole表進(jìn)行跨進(jìn)程數(shù)據(jù)共享

使用Composer安裝:

composer require swooletw/laravel-swoole -vvv
這個(gè)軟件包依賴于Swoole。請(qǐng)確保你的機(jī)器具有Swoole擴(kuò)展。你可以使用此命令快速安裝它:pecl install swoole,并訪問官方網(wǎng)站獲取更多信息。
注意:Swoole目前僅支持Linux和macOS。 Windows服務(wù)器不能使用Swoole。

然后,添加服務(wù)提供者:

如果你使用的是Laravel,請(qǐng)將服務(wù)提供者添加到 config/app.php 中提供者的數(shù)組中:

[
    "providers" => [
        SwooleTWHttpLaravelServiceProvider::class,
    ],
]

如果您使用的是 Lumen,請(qǐng)將以下代碼附加到 bootstrap/app.php:

$app->register(SwooleTWHttpLumenServiceProvider::class);
它支持包自動(dòng)發(fā)現(xiàn)。如果你運(yùn)行的是Laravel 5.5,則可以跳過此步驟。
啟動(dòng)和運(yùn)行

現(xiàn)在,你可以運(yùn)行以下命令來啟動(dòng)Swoole HTTP服務(wù)器。

php artisan swoole:http start

然后你可以看到以下消息:

Starting swoole http server...
Swoole http server started: 

現(xiàn)在你可以在 http://127.0.0.1:1215 上訪問你的Laravel應(yīng)用程序。

基準(zhǔn)測(cè)試

使用MacBook Air 13,2015進(jìn)行干凈的Lumen 5.5測(cè)試。

基準(zhǔn)測(cè)試工具:wrk

wrk -t4 -c100 http://your.app
Nginx with FPM
Running 10s test @ http://lumen.app:9999
  4 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     1.14s   191.03ms   1.40s    90.31%
    Req/Sec    22.65     10.65    50.00     65.31%
  815 requests in 10.07s, 223.65KB read
Requests/sec:     80.93
Transfer/sec:     22.21KB
Swoole HTTP Server
Running 10s test @ http://127.0.0.1:1215
  4 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    11.58ms    4.74ms  68.73ms   81.63%
    Req/Sec     2.19k   357.43     2.90k    69.50%
  87879 requests in 10.08s, 15.67MB read
Requests/sec:   8717.00
Transfer/sec:      1.55MB
更多

查看 Github Repo 和官方文檔獲取更多信息。

原文地址,請(qǐng)前往 PHPCasts

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30730.html

相關(guān)文章

  • 使用 Swoole加速你的 Laravel 應(yīng)用

    摘要:是為開發(fā)的生產(chǎn)級(jí)異步編程框架。因?yàn)閱蝹€(gè)請(qǐng)求創(chuàng)建的環(huán)境在請(qǐng)求執(zhí)行結(jié)束后會(huì)立即銷毀??梢蕴峁?qiáng)大性能而則可以提供優(yōu)雅代碼結(jié)構(gòu)使用。在使用這個(gè)包之前,請(qǐng)確保你的機(jī)器安裝了正確的。建立并運(yùn)行起來現(xiàn)在,你可以執(zhí)行以下的命令來啟動(dòng)服務(wù)。 showImg(https://segmentfault.com/img/bVbaF89?w=1240&h=634); Swoole?是為 PHP 開發(fā)的生產(chǎn)級(jí)異...

    snifes 評(píng)論0 收藏0
  • 了解swoole運(yùn)行模式,加速laravel應(yīng)用

    摘要:負(fù)責(zé)解釋執(zhí)行文件生成響應(yīng),最終返回給,展現(xiàn)至前端。相比于傳統(tǒng)架構(gòu),進(jìn)程模型最大的特點(diǎn)在于其多線程模式處理網(wǎng)絡(luò)請(qǐng)求,使得其能輕松應(yīng)對(duì)大量連接。這要求開發(fā)人員對(duì)于多進(jìn)程的運(yùn)行模式有更清晰的認(rèn)識(shí)更容易內(nèi)存泄露。 一、SwooleSwoole號(hào)稱重新定義了PHP,它是一個(gè)PHP擴(kuò)展,使得PHP可以使用異步的方式執(zhí)行,就像node一樣,而且還能使用socket,為PHP提供了一系列異步IO、事件...

    時(shí)飛 評(píng)論0 收藏0
  • 使用Swoole加速Laravel(正式環(huán)境中)

    摘要:如需要支持熱啟動(dòng),請(qǐng)自行谷歌,大概原理就是用監(jiān)控文件變更,如果更新了重啟如果正式環(huán)境中還可以自己寫個(gè)部署腳本,后重啟服務(wù)等,方法很多不一一列舉。 1 Laravel的速度瓶頸在哪? 1.1 已有的一些優(yōu)化方法 1.1.1 laravel官方提供了一些優(yōu)化laravel的優(yōu)化方法 php artisan optimize php artisan config:cache php arti...

    vibiu 評(píng)論0 收藏0
  • LaravelS - 基于Swoole加速Laravel/Lumen - 帶你飛

    LaravelS

    Jeff 評(píng)論0 收藏0
  • 使用swoole改造laravel應(yīng)用

    摘要:使用改造應(yīng)用標(biāo)簽空格分隔概述介紹是為開發(fā)的生產(chǎn)級(jí)異步編程框架。然后你可以看到以下信息現(xiàn)在可以通過訪問來進(jìn)入應(yīng)用。 使用swoole改造laravel應(yīng)用 標(biāo)簽(空格分隔): php 1. 概述 1.1 swoole介紹 Swoole 是為 PHP 開發(fā)的生產(chǎn)級(jí)異步編程框架。 他是一個(gè)純 C 開發(fā)的擴(kuò)展, 他允許 PHP 開發(fā)者在 PHP 中寫 高性能,可擴(kuò)展的并發(fā) TCP, UDP,...

    cpupro 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<