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?
" Ç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.
Ö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ü:
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.
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:
(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 .)
(kaynak: mikeschinkel.com )
Neyse, umarım bu yardımcı olur.
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 :)
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.
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.
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.
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.
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:
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:
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:
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:
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.