Zend Framework Yavaş Sahne

12 Cevap php

Ben Zend Framework kullanarak bir topluluk tabanlı web sitesi üzerinde çalışıyorum - ama sayfaları yüklemek için çok yavaş bir süre alır. Ben bunu çok daha hızlı çalışır sağlamak için içine bakmak gerekir zend framework ne yönlerini bilmek istiyorum.

Herhangi bir ipucu ve yardım büyük mutluluk duyacağız :)


Güzel tavsiye - Ben veritabanı üzerine aldı ve sıfırdan endeksli - başlamak için, herhangi bir dizin var werent: \ ama yine hızını biraz ama yine de oldukça yavaş geliştirdi. Ben burada bir göz tutmak gerekir ki başka bir şey var mı?

Ben sadece ilk çerçevesini kullanarak yapılan temel öğretici projeler koştu olduğu gibi çerçeve ile bunu yapmak çok şey varsayarak yaşıyorum çünkü - onlar biraz da yavaş idi.


Güzel ipuçları - zend performans kılavuz yazı bir göz vardı. (this link de belirtildiği gibi [burada böyle bir noob gibi sondaj için üzgünüm]: Ben olsa önbelleğe tablo meta verileri için kodu koymak için nereye kadar emin değilim

12 Cevap

(En az test için) sunucusu olarak aynı LAN üzerinde olabilir, o zaman bir istemci (biraz) profilinizi kontrol edebilirsiniz.

Tek bir makine, yavaşlamalar için en muhtemel nedeni korkunç DB sorguları ardından hafıza sorunları (çok kullanıyor bir şey, ya da çok az ana bellek), bir varsa.

Bir PHP opcode önbellek zaman da pahalı bir disk yazıyor önlemek için (noatime Windows * nix üzerinde bir kayıt defteri değişikliği montaj seçeneği) "atime" devre dışı bırakmak için hatırlamak, yardımcı olacak gibi görünüyor.

A decent article on more Zend specific things is: http://till.vox.com/library/post/zendframework-performance.html

Lütfen darboğazları derin profilleme yapıyor nerede kesin bilmek tek yolu.

Ben KCacheGrind (windows için kde parçası) ile birlikte, XDebug kullanın. Bu daha sonra işlevleri çoğu zaman alıyor öğrenmek için inceleyebiliriz yürütülen her PHP script için tam bir çağrı izleri oluşturur. Hiçbir kod değişikliği gerekli, bu yüzden Zend Framework gibi kolayca profil üçüncü parti kütüphaneleri yapabilirsiniz.

Sunucuda APC takın. Kodu önbelleklerini çerçeveler kaynaklanan yükü bir sürü ortadan kaldırır. Genellikle sadece çalıştırarak yapabilirsiniz

pecl install apc

sunucuda.

Bu muhtemelen en az çalışmaları için büyük performans kazancı (2-4x) vereceğiz kesinlikle APC yükleyin. Ben de size Performance section of the reference guide bakmak tavsiye ederim.

Zend_Cache onları hızlandırmak, hem de kendi verileri ile için ZF bileşenlerin bir sürü kullanılabilir.

Web'de En performans sorunları veritabanı sorunları vardır, her zaman geçmeden önce şeylerin veritabanı tarafında bakarak başlamak.

Bu az çağrıları ile yeterli olabilir yapılan veritabanı aramaları bir yeri vardır olabilir, indeksler doğru sütunlarda yer değil.

Bunlar genellikle yavaş şeyler aşağı şeyler vardır.

En belirgin bir zend_cache olurdu

Burada bir göz atın:

Performance Guide Zend üzerinde

Zend_Log hangi log & yapabilirsiniz Başvurunuzu iz

Zend_Db_Table meta önbelleğe alma ile ilgili olarak, size bootstrap önbelleği yapılandırmanız gerekir ve statik özellik olarak Zend_Db_Table_Abstract sınıfına ekleyin.

(Varsayılan bir veritabanı adaptörü açın ve tüm Zend_Db_Table nesneler için varsayılan bağdaştırıcı olarak ayarlamanız şekilde benzer.)

Size bağlı kılavuzun bölümünde varsayılan bir meta veri önbellek yapılandırma bir kod örneği var. Bu bootstrap gitmek istiyorum.

Veritabanı açıklama ile kabul etti. Siteniz yavaş ise, büyük olasılıkla değil bir Zend Framework konudur, ve büyük olasılıkla bir veritabanı sorunu.

Eğer başlamak için Veritabanı herhangi indeksler yoktu o zaman ben size büyük yanlış yapıyorsun başka şeyler vardır eminim!

Her neyse ... senin opcode önbelleğe APC yükleyin. Bu büyük ölçüde yürütme süresini artıracaktır. En Altyapıları uygulamanıza dahil edilmesi gereken komut dosyaları büyük miktarda nedeniyle büyük maliyetleri var. APC tam anlamıyla bu sorunu çözecektir. FastCGI da büyük ölçüde performansını artırabilirsiniz. Yani kalıcı veritabanı bağlantıları (FastCGI yüklü varsayarak ve çalışma) olabilir.

http://www.nabble.com/Caching-of-MVC-and-other-ZF-components-td15576554s16154.html

Sanırım PHP5.3 yayımlanan ve daha sonra biz bir üretim kutuyu kullanabilirsiniz umut için beklemek gerekecek sanırım. :)

http://www.zend.com/webinar/Server/webinar-Magento-Performance-Optimization-20090709.flv

artık özgür semineri izlerken, insanların bu iplik bahsettiğim çözümleri bir sürü gösterir.

Bu yardımcı olur umarım!