1000% افزایش سرعت لاراول با OCTANE و رقابت با nodejs

بسیار جای شکر آن باقی است که این خبر واقعی است و به سادگی و با نصب یک اکستنشن لاراول را به مانند nodejs کنید !!

برای اینکه شما هم به خیل علاقه مندان افزایش 1000 درصد لاراول بپیوندید لازم است که نسخه PHP 7.3 به بالا را داشته باشید و افزونه Swoole را نصب کنید.

مقایسه سرعت لاراول با swoole و nodejs
مقایسه سرعت لاراول با swoole و nodejs

به تعبیر من دنیای php بی کار ننشسته و راهکاری را ارایه کرده است اما واقعا swoole چه کار میکند آیا صرفایک ابزار برای cahce است ؟ واقعا cache نیست بلکه با تغییر رویکرد اجرای لاراول با کمک افزونه octane کاری میکنه که یکبار برای همیشه لاراول همه آن فلوچارت بزرگی را که دارد را اجرا کند و دیگر اجرا نشود و بقیه بازدید ها از نسخه ای که در RAM قرار گرفته است استفاد کنند . اگر با دقت توجه کنید برنامه های PHP به مفسری معروف هستند یعنی با هربار اجرای برنامه یا باز شدن یک صفحه از ابتدا تا انتها کل کلاس ها و middlware ها اجرا میشوند و این خوب نیست ! اما octane آن را حل کرد حتی خالق لاراول هم در تویتر گفت که laravel + octane از lumen بسیار سریع تر است.

اما کمی در مورد آن بدانیم به نوعی یک وب سرور جدید مانند apache یا ngnix است و با زبان C نوشته شده است و در سایت رسمی خود به طور کامل به آن پرداخته است

لازمه که پروژه های برپایه swoole را به صورت نصب روی هاست اشتراکی انجام ندهید و طبق رویه نصب روی سرور مجازی یا اختصاصی انجام گیرد که برای این کار باید لینوکس را بلد باشید در مثال زیر اگر سرور شما ubuntu است دستور زیر extention swoole را نصب میکند.

sudo apt install php8.0-swoole

php -m | grep swoole

دستور اول در php 8 اکستنشن را نصب میکند و در خط بعد از نصب آن مطمن میشود.
بعد در لاراول هم افزونه octane نصب کنید

composer require laravel/octane

و بعد به جای دستور همیشگی php artisan serve دستور

php artisan octane:start --server=swoole --port=8089

را وارد کنید و برنامه شما در آدرس 127.0.0.1:8089 بر روی swoole اجرا میشود .

تا اینجا کار تمام شد ! اما برای نصب آن روی سرور عملیاتی از افراد دارای تجربه کمک بگیرید و یا این لینک را بخوانید.

به طور مثال در فراخوانی یک آدرس API در یکسان سرعت بسیار متفاوتی دیده میشود در این تست ساده سرعت اجرای تعداد درخواست ها بیش از ۱۰۰۰ درصد یعنی دقیقا 1152 درصد افزایش یافته است

خوب این اعداد از کجا آمده ؟ با توجه به تستی که با ابزار WRK در دو تست 500 اتصال همزمان در ۶ خط طی ۳۰ ثانیه این تست در سیستم من با CPU CORE i5 نصل ۸ و ۸ گیگ رم تست شد.


مثال در php artisan serve پیش فرض

wrk -t 6 -c 500 -d30s http://localhost:8000/api/posts

۴۸ درخواست در ثانیه اجرا میشود
۴۸ درخواست در ثانیه اجرا میشود


در مثال swoole که با دستور php artisan octane:start --server=swoole --port=8089 اجرا شده است.

wrk -t 6 -c 500 -d30s http://localhost:8089/api/posts

۶۰۱ درخواست در ثانیه ثبت شده است
۶۰۱ درخواست در ثانیه ثبت شده است


من خیلی کنجکاو شدم که یک پروژه استارتر next.js را اجرا کنم

https://nextjs.org/docs/getting-started

بعد از اینکه npm run dev اجرا شد http://localhost:3000

595 درخواست در ثانیه توسط nextjs اجرا شد
595 درخواست در ثانیه توسط nextjs اجرا شد


با توجه به این تست قطعا لاراول میتواند به عنوان سریع ترین فریم ورک وب مورد تایید قرار بگیرد و حتی در گرفتن API شما میتوانید LARAVEL را به عنوان backend و next js را به عنوان FrontEnd استفاده کنید .