it-swarm.asia

Bir siteyi yavaşlatan ağır eklentiler mi yoksa çok sayıda eklenti mi?

Sıklıkla birçok eklentinin olmasının bir WordPress sitesini yavaşlatacağını duydum. Bu elbette anlamlıdır, ne kadar çok kod çalıştırırsa, o kadar uzun sürecektir.

Yavaşlığın çoğunlukla olup olmadığını merak ediyorum:

  • eklentilerin sayısının bir sonucu? (çünkü WP her eklentiyi bulmak ve yüklemek için bazı işlemler yapmak zorundadır)

  • birkaç yavaş/ağır eklenti olmasının bir sonucu mu?

Daha pratik olarak, kendim yazarken, hız kazanmak için işlevselliği daha az dosyada birleştirmeli miyim? Yoksa hızlı bir şekilde 10-20 eklentiye sahip olmak sorun değil mi?

6
allclaws

Genel konular

" Çok sayıda eklenti bir siteyi yavaşlatıyor " çok açık bir araçtır ve eklentilerin nasıl çalıştığını anlamayanlar tarafından uygulanmaktadır, böylece şeytanlaştırılması kolay bir şey seçerler.

Evet eklentileri sitenizi yavaşlatabilir, ancak kaliteyle yapması gereken miktarla ve başarmaya çalıştığı şeyle ilgili değildir. Bir siteyi dizlerine çekecek tek bir eklenti yazabilirim (eğer bunun için bir neden olsaydı) ve diğer 50 iyi yazılmış eklentiden daha kötü olurdu. Elbette insanlar her zaman bir siteyi dizlerine çekecek eklentileri yazarlar çünkü daha iyisini bilmiyorlar.

" Çok sayıda eklenti bir siteyi yavaşlatıyor " için gerçek şu ki, çok sayıda eklenti varsa, kötü bir tane yakalamanız daha olasıdır.

Ayrıntılı Bilgiler

Öyleyse daha ayrıntılı konuşalım. Eklentiler, yürütme yolu boyunca belirli bir noktayı çalıştıran PHP kodunun bitleri olan " kancaları " kullanır ve bir şey yapabilir veya bir değeri veya her ikisini de filtreleyebilirler. WordPress, bir web sayfasını oluşturma ve tarayıcıya göndermek için HTML oluşturma çabaları nedeniyle kancaları çağırmaya başlar ve verilen bir sayfa için çalışmayı bitirene kadar kancaları çağırmaya devam eder.

Bir eklentinin hangi kancalara bağlı olduğuna bağlı olarak, yalnızca belirli sayfalarda, " arkaplanında " veya neredeyse hiç kullanılmayabilir. Bazı kancalar yalnızca yönetici konsolunda çalışır. Bazı kancalar yalnızca yönetici konsolunun belirli sayfalarında çalışır. Ve bazı kancalar dahili psuedo-cron sistemi tarafından çağrılır. OTOH, bazı eklentiler fazladan CSS veya JS dosyaları yükleyebilir ve bu dosyaların her biri Web Performans Kuralı # 1 nedeniyle performansı yavaşlatır.

Her sayfada kancaların ne denildiği hakkında bir fikir edinmek istiyorsanız, " WordPress Enstrüman Kancalarını "Eklenti soru için yazdım" WordPress Hooks Listesini Nerede Bulabilirim? "İşte, eklentinin kullanıldığında altbilgide gösterdiklerinin bir ekran görüntüsü:

Screenshot of Instrument Hooks for WordPress Plugin in action

Ancak yalnızca kancaları bilmek, bir eklentiyle ilgili bir sorun olup olmadığını kesin olarak bilmenize yardımcı olmaz. Bir eklentiyi 100 kez çağırabilir ve birkaç yüzden fazla yayını olan bir siteyi çökertebilecek bir SQL sorgusuna WHERE yan tümcesi ekleyen başka bir kanca çağrısı ile karşılaştırıldığında ihmal edilebilir. Veya başka bir sunucuya bir HTTP araması yapabilirdi. Veya her sayfa yüklemesinde yeniden yazma kurallarını temizleyebilir. Günahların listesi devam ediyor.

Bundan emin olmanın tek gerçek yolu, kaynak kodunu inceleyerek veya PhpStorm + XDEBUG gibi bir hata ayıklayıcıdan geçirerek eklentinin kancalarını denetlemektir.

Kendi Eklentileriniz

Performans açısından kodun nasıl organize edildiğinden endişelenmeyin ; Kodunun ne yaptığı hakkında endişelen. Sık çalıştırılan bir SQL sorgusunu optimize etmek / Geçici API’yı kullanarak alım yapın (Bkz: Geçici API hakkında sunum ) performans için çok daha iyi olurdu 10 eklentinin kodunu bire birleştirmek yerine.

Öte yandan, kodunuzu başka nedenlerle düzenlemeyi düşünün. Bence uzun bir eklenti listesi psikolojik rahatsızlık yaratabilir birçok kullanıcı için; böyle bir ekran görüyorlar, şaşkına dönüyorlar ve sadece işleri basitleştirmek istiyorlar:

Long List of Plugins
(kaynak: mikeschinkel.com )

Öte yandan , bazen bir eklenti çok fazla yaptığı için kullanıcılar bunalmış olabilir. Örneğin Gd Yıldız Derecelendirmesi Eklentisi ile böyle hissettim. Bir projede denedikten sonra (ve daha da kötüsü, ihtiyacım olanı yapması için kandırmaya çalışıyorum) kulağına atmaya karar verdim.

Bu yüzden bazı insanlar (benim gibi) sık sık her birini bir şey yapan ve iyi yapan küçük sıkı eklentileri tercih edeceklerdir (WordPress nasıl bir tür gruplandırma özelliğini destekliyorsa, güzel olurdu iPhone iOS 4, uygulamaları klasörler halinde gruplandırmanıza izin verir .)

Long List of Gd Star Rating Options
(kaynak: mikeschinkel.com )

Neyse, umarım bu yardımcı olur.

8
MikeSchinkel

Doğal olarak Eklentiler, performans hikayesinin yalnızca bir parçasıdır, dolayısıyla sonunda dosya sayısını ölçemezsiniz. Dahası var ve ne işe yaradığını önceden söyleyemezsiniz, bu yüzden bilgisayarınızda iyi olabilecek bir şey başkaları üzerinde değildir.

Performans aramak yerine karar vermek için diğer ve kendi ölçütlerinizi tanımlamanız gerekir. Örneğin, eklentiler için, işleri karıştırmamak için ayrı işlevselliği ayrı eklentilere eklemeyi tercih edebilirsiniz. Bu, hız veya bellek kullanımı açısından hiç akıllıca bir performans göstermeyebilir, ancak ticaret işleri eşleştirerek hafifletmek, böylece eklentileri geliştirmek ve kullanmak daha kolaydır. Unutmamak gerekir ki, yeni bir WordPress sürümü çıktığında, yalnızca iki eklenti ondan birini çıkarabilir ve her zaman büyük olanı değil. Ve sonunda, bir kullanıcı on eklentiden sadece üçüne ihtiyaç duyuyor, bu yüzden daha az hafızaya ihtiyaç duyuyor.

Bir kullanıcı Blog'unun performansı hakkında şikayette bulunuyorsa, normalde daha büyük bir sunucu satın alabileceklerini ve performans sorunlarının çözüldüğünü önerebilirsiniz.

(Olgun Öncesi) Optimizasyon tüm kötülüklerin kökenidir. Artık eklentileri yazarken performansı düşünmeyin. Aydınlık ve aydınlık bir şekilde yanınıza alın: WordPress performansı sonunda akıllıca tasarlanmamıştır, hatayı yapmayın ve bunun için performans eklentileri yazmaya çalışın;)

WordPress Çamur Topu (-) tasarım deseni ile tasarlanmıştır. Eklenti sistemi onunla çok iyi çalışıyor. Sadece bu kadarı bir eklenti yazarı olarak optimize edebileceğinizi düşünmeyin. Yapamazsın Onunla savaşma :)

2
hakre

Eklentilerin tasarımı iyi olduğunda, çoğu eklentinin kötü bir kodu vardır ve bu, WordPress'in performans sorunudur, WordPress'i yüzlerce eklentiyle kullanabilirsiniz.

0
bueltge

hepsi doğru eklentilere sahip olmakla ilgili. Örneğin, eklentilerinizin veritabanına kendi tablolarını yazıp yazmadığını kontrol edin, bu genellikle işleri biraz yavaşlatır. Çok fazla jquery veya javascript yükleyen herhangi bir şey genellikle biraz da yavaşlayacaktır. Büyük miktarda eklenti her zaman performans düşüşü anlamına gelmez. Ayrıca yardımcı olacak bir önbellek eklentisi kullandığınızdan emin olun.

Sanırım bunu soruyorsun çünkü yavaşlıyorsun? Ev sahibinize, hızlandırmak için yapabileceğiniz herhangi bir şey olup olmadığını sorun ve php yapılandırmanızın doğru ayarlandığından emin olun.

0
rfair404

WordPress için genellikle çok fazla eklenti yüklemiyorum, bunun yerine ana işi yapan tema çerçevelerini kullanmaya çalışıyorum. Her eklentinin kaynak tüketimine katkıda bulunacağı doğrudur.

Her eklenti bir şeyler yapacak, başlatacaklar, bu yüzden web siteniz için bir sayfa istendiğinde bazı kodlar çalıştıracaklar, yönetici WordPress panelinde yüklenmesini zorlaştıran pek çok bağlantıdan bahsetmiyorlar.

Belki de günde 2-3 sayfalık sayfa görünümüne sahip bir paylaşımlı barındırmada farkına varmazsınız, ancak 3 bin aktif kullanıcısı olan bir web siteniz varsa, her biri günde 10 sayfa isteğinde bulunursa sorun olabilir.

0
Lucian

Sitenizi yavaşlatacak 2 şeye bakıyorsunuz: 1, dosyalardan sunuculara (php) işlem, php ve 2, göz atma kodu okuduğu şekilde.

Kod özensiz ise, tarayıcı ekranda sunmadan önce kodu iki veya üçe katlayacaktır. Çok sayıda veritabanı ve/veya sunucu isteğine sahip çok sayıda eklenti kullanıyorsanız, bu işlem biraz zaman alabilir ve doğru şekilde yapılmazsa, sitenizin yüklenmemesi ve/veya hata mesajları.

rFair404, sunucu isteklerine yardımcı olacak ve bazılarının html kodunu sıkıştıracağını ve bana bazı css sayfalarını sıkıştırmam gerektiğini hatırlatan önbellekleme programlarından bahsetti.

0
javajoba

Cevabın ikisinin de olduğunu söyleyebilirim .


Daha fazla eklenti = daha yavaşlık

Sayfaya bir stil sayfası ve/veya javascript dosyası ekleyen etkinleştirdiğiniz her eklenti web sitenizi önemli ölçüde yavaşlatıyor.

Her biri web sitenizin ön ucunda bir şeyler yapmak için bir stil sayfası ve javascript dosyası gerektiriyorsa en iyi yazılmış eklentiler bile sitenizi yavaşlatacaktır.

Dosyalarınızı Birleştirin

Bir wordpress sitesi işletiyorsanız, nasıl yapılacağını öğrenmek için bunu kendinize borçlusunuz:

  • Javascript dosyalarını birlikte doğru şekilde birleştirme
  • Stil sayfası dosyalarını birlikte doğru şekilde birleştirme
  • Javascript çağrılarını üstbilgiden altbilgiye taşı

Bir wordpress sitesi çalıştırıyorsanız ve yukarıdakileri yapamıyorsanız, bir wordpress sitesi çalıştırmamalısınız ... veya en azından eklentileri yükledikçe siteniz yavaşladığında şikayet etmemelisiniz.

Ek olarak, bir wordpress sitesi çalıştıran herkes aşağıdakileri bilmelidir:

  • CSS ve javascript dosyalarını küçültün
  • Sunucu sıkıştırmasını aç
  • Son kullanma tarihi geçmiş başlıklara komut dosyaları ve stil sayfaları konduğundan emin olun

Kötü yazılmış eklentiler = daha fazla yavaşlık

Bir eklenti yazarı için web sitenizi gerçekten yavaşlatmanın ana yolları şunlardır:

  1. Tek bir sayfa için birden fazla komut dosyası veya stil sayfası yükleme - yukarıya bakın
  2. Veritabanının yanlış kullanılması - kötü yazılmış sorgular, sorgu değişiklikleri vb. Bir web sitesinde ciddi bir etki yaratabilir. Mümkün olduğunda sonuçları önbelleğe almamak da işleri yavaşlatabilir. Çoğu insan veri tabanı geliştirme ve yönetimini emer. Bu tür insanlar veritabanları kullandığında, problemler ortaya çıkar.
  3. Wp cron'u yanlış kullanma - her kullanıcı isteğinde sabit cron işleri dizlerini bir sunucuya getirecektir.

Gerçekten kötü kod (kısa sonsuz döngüler, gerekmediği durumlarda düzenli ifadeler, vb.) Yazmaktan çok, kelimelerin ne kadar büyük olduğunu düşündüğünüzde çoğu şeyin pek bir etkisi olmayacak. % 1 ekstra işlem süresi eklemek fazla değildir.


Doğal olarak yavaş görevler

Ne kadar iyi yazılmış olursa olsun, yavaş olan bazı şeyler var:

  1. 3. taraf servislerini kullanma - Bir kullanıcıya verilen yanıtınız, bazı üçüncü tarafların verdiği yanıtlara dayandığında, siteniz çok daha yavaş olacaktır.

Tabii ki, doğru bir şekilde yapıldığında (önbelleklenmiş sonuçlar, mümkün olduğunda arka plan işlemlerini yapar, vb.) Birçok 3. parti servis çok fazla problem olmadan kullanılabilir.

0
Privateer