Laravel Bölüm 4’ü optimize etme: Kuyruk dikkate alınması, ön uç & amp;Opcache
Laravel Bölüm 1’i Optimize Etmek: Temel Bilgiler
Laravel Bölüm 2’yi optimize etme: Bir veritabanı diziniyle sorgunun performansını artırın
Laravel Bölüm 3’ü Optimize Etme: Nesne Önbellekleme ile Performansı Artırın
Laravel Bölüm 4: Kuyruk Hususları, Ön Uç ve OPCACHE
Son makalemde, bir nesne önbelleğinin ne olduğunu ve Laravel uygulamasının performansını artırmak için nasıl ve ne zaman kullanılacağını görüyoruz. Bu makalede, aşağıdakileri içeren Laravel uygulamalarının performansını artırmak için bazı küçük taktikler göreceğiz, ancak yine de çok yararlı olacağız:
Zaman alan görevleri işlemek için kuyruklar kullanın.
Ön uç varlıkların yüklenmesinin performansını iyileştirin (varlıkları sıkıştırma, satıcı çıkarma, önbellek patlaması).
OPCACE ile PHP’nin modern bir versiyonunu kullanma etkinleştirildi.
Ağırlığı kaldırmak için bir kuyruk kullanın Laravel uygulamasının performansını anında iyileştirmenin basit yollarından biri, zaman alan görevi kuyruk görevine taşımaktır. Buradaki fikir, kullanıcı UI’da hızlı bir şekilde bilgi gerektirmediği sürece, görev ertelenebilir ve başka bir zamanda ayrı bir işlemle arka planda çalıştırılabilir (örneğin bir e -posta gönderebilir). Bu, uygulamanızdaki web talebinin hızını önemli ölçüde artırabilir.
Laravel, kutunun dışındaki bir dizi kuyruk sürücüsüne destek ile gelir (örneğin veritabanları, Beanstalkd, Amazon SQS, Redis) ve ayrıca aşağıdaki zanaatkâr komutunu kullanarak çalıştırılabilen doğuştan gelen bir kuyruk işçisi ile donatılmıştır: PHP Zanaatkar Kuyruk: Bu makalenin bir parçası olarak Laravel’deki kuyruğun nasıl ayarlanacağını açıklamayın, çünkü Laravel belgeleri işi iyi yapıyor. Çalışma sınıfının basit olduğunu ve Laravel’deki kuyruğa iş sınıfında çağrı yapmak kadar kolay olduğunu söylemek yeterlidir: SendEmailjob :: Dispatch ($ to, $ body); Sonunda uygulamanızda kapsamlı kuyruklar kullanırsanız, Laravel Horizon gibi kuyruk işçileriniz için biraz daha güçlü bir çözüm düşünmek iyi bir fikir olabilir (bunu spinupwp için kullanıyoruz). Horizon yalnızca Redis kuyruğu sürücüsünü destekler, ancak verim çalışması, işlem süresi ve iş arızası gibi kuyruğunuzun ana metriklerini kolayca izlemenizi sağlayan bir gösterge tablosu verir. Bazı kuyruklarda “denge” çalışması, işaretleme ve bildirim gibi özellikleri yapılandırmak ve sunmak da çok kolaydır.
Ön uç varlıkları daha hızlı yükleyin PHP arka uç kodu, performansın Laravel uygulamamızı nasıl etkileyebileceğini düşünmemiz gereken tek yer değildir. Aslında, çoğu zaman, ön uçtaki performans yükleme varlıkları, uygulamanız arasındaki farkı yavaş veya hızlı hissettirebilir. Neyse ki, Laravel, Laravel Mix adlı ön uç varlıklarla çalışmayı kolaylaştırmak için varsayılan bir araca sahiptir. Mix, ön işlem öncesi/işleme sonrası CSS, kaynak haritaları üretme, satıcı çıkarma, dosyaları/klasörleri kopyalama, tarayıcıyı yeniden açan vb. Gibi her türlü işlem için desteğe sahiptir. Hatta modern hızlı ve kolay bir JavaScript çerçevesi ile başlayacak ve çalıştırmak için daha önce yapılandırılmış bir webpack yapılandırmasına sahiptir. Örneğin, varsayılan karışım yapılandırma dosyası aşağıdaki satırlara sahiptir: Mix.js (‘Resources/js/app.js’ ‘ , ‘public/js’) .SSS (‘kaynaklar/sass/app.scss’, ‘public/css’); Ardından, varlıkları basitçe derlemek için önceden belirlenmiş paket komut dosyalarından birini çalıştırın: NPM Run Dev Varlıkları Varsayılan olarak sıkıştırır, varlıklar birleştirilecek, ancak sıkıştırılmayacaktır. Neyse ki, varlıkların önceden belirlenmiş bir “üretim” komut dosyası çalıştırması kadar kolay sıkıştırılması: NPM Run üretimi, azaltılmış dosya boyutu nedeniyle öncekinden daha hızlı yüklenmesini sağlayacak sıkıştırılmış bir varlığa sahiptir.
Satıcı Karışımı Ekstraksiyonu, genel “satıcı” kütüphanesini daha uzun olması için ayrı bir paket komut dosyasına çıkarmanızı sağlayan satıcı çıkarma işlemini destekler. Bu, tarayıcının, uygulama kodunuz her güncellendiğinde değiştirilmeyen tüm satıcı kodlarını indirmesi gerekmediği anlamına gelir, bu da sayfa yüklemesini daha hızlı hale getirme potansiyeline sahiptir. Satıcı Ekstraksiyonunu Karışım Yapılandırmanızda Ekstrakt () işlevini kullanmak kadar kolay kullanmak: Mix.js (‘Resources/JS/App.js’, ‘public/js’). Extract ([‘Vue’, ‘Lodash’])) ; Büyük bir dosya üretmek yerine, bu artık üç ayrı dosya üretecektir:
public/js/manifest.js – webpack manifest süreci süresi
public/js/vendor.js – satıcı kütüphaneniz
public/js/app.js – uygulama kodunuz
Önbellek ezmek Laravel Mix’in bir başka yararlı özelliği patlama önbelleğidir. Buradaki fikir, tarayıcıyı bayat bir kodun (önbellek) bir kopyasını sunmak yerine yeni varlıklar içermeye zorlamak için varlıklarınızı benzersiz bir zaman damgası veya jeton eklemenizdir. Bu, gelecekte uzun bir son kullanma süresi olan statik bir varlık sunduğunuzda veya CDN’ye indirdiğinizde çok kullanışlıdır. Bir önbellek çıkarıcı hazırlamak, karışım yapılandırmanızdaki sürüm () işlevini kullanmak kadar kolaydır. Dosyalar genellikle geliştirmede gerekli olmadığından, bunu sadece üretim için yapın:
mix.js (‘Resources/js/app.js’, ‘public/js’); if (mix.inproduction ()) {mix.version (); } Ardından Laravel ekranınızda, Varlığı Mix Assistant işlevini () kullanarak yükleyebilirsiniz: Üretimde, Çıktı şöyle görülecek: Bu makalede tartışacağımız son opcache opcache ile modern php kullanın, Laravel ile doğrudan ilgili değildir ama Laravel uygulamasının performansı konusunda harika bir fark yaratacak. Ve sadece bu: OPCACHE etkinleştirilmiş PHP’nin modern sürümünü kullanın. PHP 5.6’nın aksine PHP 7.2/7.3’ü kullanma yeterince, laravel uygulamasının performansını% 100’e kadar artırabilir (~ 340 istek/saniyeye kadar ~ 700 istek/saniyeye kadar ). Burada Laravel’in V5.5’ten beri PHP 7.0+ ve V5.6’dan beri PHP 7.1+ gerektirdiğine dikkat edilmelidir. Dolayısıyla Laravel ile PHP’nin modern bir versiyonunu kullanmamak için hiçbir neden yok. Bir adım daha ileri gidecek, PHP’deki OPCACHE’yi etkinleştirebilirsiniz, bu da paylaşılan bir bellekte derlenen komut dosyası bayt kodunu saklayarak, PHP’nin komut dosyasını her istek üzerine yükleme ve çözme ihtiyacını ortadan kaldırarak (düşük seviyeli bir önbellek olarak düşünün ).
PHP 7’den beri, modül kurulmuşsa OPCACHE varsayılan olarak etkinleştirilir (ancak üretim için optimize edilmez). Modül kurulmazsa, kendiniz yüklemeniz gerekir (modül işlemi ana bilgisayarınıza bağlı olarak farklı olacaktır). Etkinleştirildiğinden emin olmak için Php. Opcache.memory_consUpton = 128 OPCACHE.INSERNED_STRINGS_BUFFER = 8 opcache.max_accelerated_files = 4000 opcache.revalidate_freq = 60 opcache.fast_shutdown = 1 opcache.enable.enable Size OPCACHE’yi etkinleştirmenin performans etkisinin bir resmini vermek için, 1GB/1CPU DigitalOcean Droplet’te yapılandırmanıza bağlı olarak ~% 300 artış elde edebilirsiniz (~ 10 istek/dtk ~ 40 istek/dtk). OPCACHE etkinleştirildiğinde ve üretim için ayarlandığında, değişikliğinizin uygulanması için her uygulamadan sonra PHP’yi yeniden yüklemeniz gerektiğine dikkat edilmelidir.
Senin için işte var.Laravel uygulamanız için performansı önemli ölçüde artırabilecek üç nispeten basit optimizasyon.Bu serinin önceki makalesi ile birlikte, şimdi çok hızlı bir Laravel uygulamasına sahip olmalısınız!Ve bu bizi kısa Laravel optimizasyonu serisinin sonuna getiriyor.Önceki Laravel’i optimize etmek için bu makaledeki taktiklerden birini hiç kullandınız mı?Eğer öyleyse, nasıl devam edersiniz?Değilse, şimdi deneyecek misin?Başka ipuçları var mı?Yorumlarda bize söyle
Laravel Bölüm 2’yi optimize etme: Bir veritabanı diziniyle sorgunun performansını artırın
Laravel Bölüm 3’ü Optimize Etme: Nesne Önbellekleme ile Performansı Artırın
Laravel Bölüm 4: Kuyruk Hususları, Ön Uç ve OPCACHE