PHP 7.4'te opcache önyüklemeyi nasıl etkinleştirebilirim?


9

PHP 7.4 kullanarak üretim sunucularımda opcache önyüklemesini ( RFC ) etkinleştirmek istiyorum . Symfony kullanıyorum , ancak bu tüm PHP için geçerlidir.


1
Reddit.com/r/PHP/comments/e8pgzi/… 'in kullanım planlarını ne kadar etkileyeceğinden emin değilim .
Nigel Ren


1
Bu makaleye göz atın . Ayrıca, Nigel'in şu an için oldukça kritik göründüğü gibi yayınladığı hatayı okuyun.
Jeto

Yanıtlar:


4

Her şeyden önce eklemelisiniz:

opcache.preload=/path/to/project/preload.php

senin için php.ini

Daha sonra PHP betiğinize opcache_compile_file($file);, önceden yüklemek istediğiniz her dosyayı iletmelisiniz.


4

Göre blogda yayınlamak önemsiz olmasını görüntülenir. Görünüşe göre Symfony, 4.4'ten bu yana, aşağıdakilerde ayarlanması gereken bir önyükleme betiği oluşturur php.ini:

opcache.preload=/path/to/project/var/cache/prod/App_KernelProdContainer.preload.php

Yerel Docker ortamımda bazı testler yaptım ve işte böyle gitti:

OPcache olmadan PHP 7.3 (geçerli)

Requests per second:    8.75 [#/sec] (mean)
Time per request:       114.402 [ms] (mean)

OPcache olmadan PHP 7.4

Requests per second:    11.44 [#/sec] (mean)
Time per request:       87.417 [ms] (mean)

OPcache ile PHP 7.4, önyükleme olmadan (Apache + modphp)

Requests per second:    30.25 [#/sec] (mean)
Time per request:       33.053 [ms]

OPcache ile PHP 7.4, önyükleme olmadan (nginx + php fpm)

Requests per second:    40.00 [#/sec] (mean)

Ne yazık ki önyüklemeyi etkinleştiremedim :( Aşağıdaki hatalarla karşılaştım (hem Apache + Mod hem de Nginx + FPM'de):

double free or corruption (!prev)
child pid 17 exit signal Aborted (6), possible coredump (…)

Bu özellik bir WIP gibi görünüyor . Bu önyükleme özelliğini kullanabildiğim zaman bu cevabı tekrar doğrulayacağım. Genel olarak oldukça PHP sadece geçiş yaparak, +% 30 performans etkiledi ediyorum 7.3için 7.4.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.