Blog Yazılarım

Laravel Uygulamanızı Swoole ile Hızlandırın

Laravel Uygulamanızı Swoole ile Hızlandırın


Swoole , PHP için bir asenkron programlama framework’üdür. Saf C dilinde yazılmış bir PHP uzantısıdır ve PHP geliştiricilerinin yüksek performanslı, ölçeklenebilir, eşzamanlı TCP, UDP, Unix soketi, HTTP, WebSocket hizmetlerini PHP’de engellemeyen G Ç programlama hakkında çok fazla bilgi sahibi olmadan yazmalarını sağlar ve düşük Linux işlemcisi ile aklınıza gelebilecek Swoole yüksek performans verir.

Laravel’i neden Swoole’de çalıştırıyoruz ?

Aşağıdaki resimde PHP’deki yaşam döngüsünü göstermektedir. Gördüğünüz gibi, php betiğini her seferinde çalıştırdığınızda, PHP’nin modülleri başlatması ve çalışan ortamınız için Zend Engine’i başlatması gerekir. Ve PHP betiğinizin Zend Engine’in yürütülmesi için OpCodes’a derlenmesi gerekir.

Başka bir deyişle PHP yaşam döngüsünde, komut dosyası yürütmeniz için kaynakları oluşturmak ve silmek için bir sürü zaman harcar. Ve Laravel gibi frameworklerde , bir istek için kaç dosyanın yüklenmesi gerekiyor? Dosyaları yüklemek için de çok fazla G/Ç tüketimi vardır.

Peki, Swoole üzerinde yerleşik bir sunucumuz varsa ve tüm komut dosyaları ilk yüklemeden sonra bellekte tutulabilirse ne olur? Biz çalıştırmayı denememizin nedeni budur laravel üzerinde Swoole güçlü bir performans yükseltici olabilir ve Laravel kolay yapı ve kod kullanımları sağlar. Buda bize mükemmel bir kombinasyon sağlar.

Kurulum

Bu paketin Composer ile istenmesi:

$ composer require swooletw/laravel-swoole

Bu paket Swoole uzantısına dayanır . Bu paketi kullanmadan önce Swoole’u kurduğunuzdan emin olun .

Not: Swoole şu anda yalnızca Linux ve OSX’i desteklemektedir. Windows sunucuları henüz Swoole kullanamıyor.

Ardından servis sağlayıcıyı ekleyin:

Laravel kullanıyorsanız , servis sağlayıcıyı sağlayıcının dizisine ekleyin config/app.php:

[
'providers' => [
SwooleTW\Http\LaravelServiceProvider::class,
],
]

Lumen kullanıyorsanız , aşağıdaki kodu ekleyin bootstrap/app.php:

$app->register(SwooleTW\Http\LumenServiceProvider::class);

Laravel 5.5ve üzeri çalıştırıyorsanız, bu adımı atlayabilirsiniz.

Artık Swoole HTTP sunucusunu başlatmak için aşağıdaki komutu çalıştırabilirsiniz.

$ php artisan swoole:http start

Ardından aşağıdaki mesajı görebilirsiniz:

Starting swoole http server...
Swoole http server started: <http://127.0.0.1:1215>

Artık Laravel uygulamanıza bu adresten erişebilirsiniz.

<http://127.0.0.1:1215>

Nginx Http Sunucusu

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 Sunucusu

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

Daha fazla bilgi için Github Reposu ve Resmi Dokümanlar’daki pakete göz atın .



Bu yazıyı paylaş


Yorumlar (0)

Yorum Yap