• Uyarı

thread_prefix.5 Laravel Uygulamanızı Swoole ile Hızlandırın

karabayyazilim

New member
Yönetici
#1
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:
Kod:
$ 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:
Kod:
[

    'providers' => [
        SwooleTW\Http\LaravelServiceProvider::class,
    ],
]
Lumen kullanıyorsanız , aşağıdaki kodu ekleyin bootstrap/app.php:
Kod:
$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.
Kod:
$ php artisan swoole:http start
Ardından aşağıdaki mesajı görebilirsiniz:
Kod:
Starting swoole http server...
Swoole http server started: <http://127.0.0.1:1215>
Artık Laravel uygulamanıza bu adresten erişebilirsiniz.
Kod:
<http://127.0.0.1:1215>
Nginx Http Sunucusu
Kod:
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
Kod:
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 .

Daha fazla laravel yazısı için tıklayınız
 
Moderatör tarafında düzenlendi: