摘要:因為為單個請求創建的環境將在請求過程完成后立即銷毀。可以成為強大的性能增強器,提供了優雅的結構和代碼使用方式。你可以使用此命令快速安裝它,并訪問官方網站獲取更多信息。注意目前僅支持和。服務器不能使用。基準測試使用進行干凈的測試。
Swoole 是針對PHP的生產級異步編程框架。它是一種用純C語言編寫的PHP擴展,它使PHP開發人員能夠在PHP中編寫高性能,可擴展的并發TCP,UDP,Unix套接字,HTTP,WebSocket服務,而無需太多的非阻塞I/O編程和Linux內核知識。 你可以將Swoole想象成NodeJS,但是對于PHP來說,性能更高。
為什么要在Swoole上運行Laravel下圖說明了PHP中的生命周期。 正如你所看到的,當你每次運行php腳本時,PHP都需要初始化模塊并為你的運行環境啟動Zend Engine。 并且你的PHP腳本需要編譯為OpCodes以供Zend Engine執行。
但是,這個生命周期需要在每個請求中重復一遍。因為為單個請求創建的環境將在請求過程完成后立即銷毀。
換句話說,在傳統的PHP生命周期中,它浪費了大量時間為腳本執行構建和銷毀資源。 想象一下像 Laravel 這樣的框架,需要為一個請求加載多少個文件? 加載文件也有很多I/O消耗。
那么如果我們在Swoole之上有一個內置的服務器,并且所有的腳本可以在第一次加載后保存在內存中呢? 這就是我們試圖在Swoole上運行Laravel的原因。 Swoole可以成為強大的性能增強器,Laravel提供了優雅的結構和代碼使用方式。 這是一個完美的組合!
安裝以下是 swooletw/laravel-swoole 的主要特點:
在Swoole上運行 Laravel/Lumen 應用程序
卓越的性能提升至 30倍
沙箱模式隔離應用程序容器
支持在Laravel中運行WebSocket服務器
支持Socket.io協議
支持Swoole表進行跨進程數據共享
使用Composer安裝:
composer require swooletw/laravel-swoole -vvv
這個軟件包依賴于Swoole。請確保你的機器具有Swoole擴展。你可以使用此命令快速安裝它:pecl install swoole,并訪問官方網站獲取更多信息。
注意:Swoole目前僅支持Linux和macOS。 Windows服務器不能使用Swoole。
然后,添加服務提供者:
如果你使用的是Laravel,請將服務提供者添加到 config/app.php 中提供者的數組中:
[ "providers" => [ SwooleTWHttpLaravelServiceProvider::class, ], ]
如果您使用的是 Lumen,請將以下代碼附加到 bootstrap/app.php:
$app->register(SwooleTWHttpLumenServiceProvider::class);
它支持包自動發現。如果你運行的是Laravel 5.5,則可以跳過此步驟。啟動和運行
現在,你可以運行以下命令來啟動Swoole HTTP服務器。
php artisan swoole:http start
然后你可以看到以下消息:
Starting swoole http server... Swoole http server started:
現在你可以在 http://127.0.0.1:1215 上訪問你的Laravel應用程序。
基準測試使用MacBook Air 13,2015進行干凈的Lumen 5.5測試。
基準測試工具:wrk
wrk -t4 -c100 http://your.appNginx 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.21KBSwoole 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 和官方文檔獲取更多信息。
原文地址,請前往 PHPCasts
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30730.html
摘要:是為開發的生產級異步編程框架。因為單個請求創建的環境在請求執行結束后會立即銷毀。可以提供強大性能而則可以提供優雅代碼結構使用。在使用這個包之前,請確保你的機器安裝了正確的。建立并運行起來現在,你可以執行以下的命令來啟動服務。 showImg(https://segmentfault.com/img/bVbaF89?w=1240&h=634); Swoole?是為 PHP 開發的生產級異...
摘要:負責解釋執行文件生成響應,最終返回給,展現至前端。相比于傳統架構,進程模型最大的特點在于其多線程模式處理網絡請求,使得其能輕松應對大量連接。這要求開發人員對于多進程的運行模式有更清晰的認識更容易內存泄露。 一、SwooleSwoole號稱重新定義了PHP,它是一個PHP擴展,使得PHP可以使用異步的方式執行,就像node一樣,而且還能使用socket,為PHP提供了一系列異步IO、事件...
摘要:如需要支持熱啟動,請自行谷歌,大概原理就是用監控文件變更,如果更新了重啟如果正式環境中還可以自己寫個部署腳本,后重啟服務等,方法很多不一一列舉。 1 Laravel的速度瓶頸在哪? 1.1 已有的一些優化方法 1.1.1 laravel官方提供了一些優化laravel的優化方法 php artisan optimize php artisan config:cache php arti...
摘要:使用改造應用標簽空格分隔概述介紹是為開發的生產級異步編程框架。然后你可以看到以下信息現在可以通過訪問來進入應用。 使用swoole改造laravel應用 標簽(空格分隔): php 1. 概述 1.1 swoole介紹 Swoole 是為 PHP 開發的生產級異步編程框架。 他是一個純 C 開發的擴展, 他允許 PHP 開發者在 PHP 中寫 高性能,可擴展的并發 TCP, UDP,...
閱讀 3451·2019-08-30 10:54
閱讀 3147·2019-08-29 16:38
閱讀 2166·2019-08-26 14:06
閱讀 1512·2019-08-23 15:39
閱讀 3034·2019-08-23 15:37
閱讀 2883·2019-08-23 13:50
閱讀 3190·2019-08-22 17:14
閱讀 2375·2019-08-22 15:44