Framework Karşılaştırma ve Tepegöz

5 Cevap php

Ben Zend framework kullanarak geliştirilen bir Facebook oyunu üzerinde çalışıyorum. Şu anda trafik çok yok zaten veri kullanımı / CPU zaman oldukça büyük bir # görüldü.

Aslında, ben Zend iyi değilim. PHP & için sıfırdan kodlama iyi JS.

bu yüzden, ben Zend çerçevenin performansı merak ediyorum. becuase data / session / mantığını yönetmek için arka uç olarak Zend kullanarak applciation yeniden düşünüyorum. ve ön uç işleme UI için JS (yerli kod veya JQuery) kullanın ve istemci tarafında kullanıcı eylemi işlemek.

In between, use aJax to get data from Zend backend.. most likely REST.
Anyone has suggestion about this kind of structure? I want to cut down the server load by that and also easier to manage code, plus better user experience.

Herkes iyi bir fikir varsa teşekkür ederiz. :)

POST (birkaç gün sonra)

yani, temel PHP daha hızlı olmalı ve (eğer kodu doğru) daha sonra Zend (veya herhangi bir) çerçeve, sağ az veri aktarımı kullanın? Kod reusablility burada büyük bir endişe değildir. :)

5 Cevap

Bir ZF-tabanlı uygulama yavaş olduğunu düşünüyorsanız ilk yapılacak tek bir şey var. Bunu ölçmek. Çeşitli araçları o zaman böyle bir hafif ağırlık başlatma gibi bu parçaları (optimize doğru bazı hareketler yapmak ve / veya bazı olabilir, Xdebug parçalar sürecini yavaşlatan size göstermek için bir profil çıkışını alacak var önbelleğe alma). Bir iyi bir kaynak survivethedeepend.com de Zend Framework kitabı, "performance optimisation for ZF Apps" dir.

İşte aradığınız ne: PHP framework comparison benchmarks

Birçok php geliştiricileri kurbanı Bir şey onlar performans olarak algıladığımız için iyi mimarisi ve sağlam ilkeleri feda edilir.

Kodunuzda köşeleri kesmek için karar, ancak, "premature optimization is the root of all evil" hatırlıyorum olabilir. Yani optimize etmek gerekirse erken aslında faydalı bir şey yapıyoruz emin olun.

Zend kütüphaneler mutlaka akılda en iyi uygulama değil, performans ile üretilmiştir. Mantık kod bakım ve okunabilirliği (önbelleğe alma, yük dengeleme, donanım, kuyruk yönetimi, vb) ödün vermeden daha sonra şeyleri hızlandırmak için birçok yolu vardır olmasıdır.

Olduğu söylenir, ben ZF performans istatistikleri için aradığınızı düşünüyorum, ama yerine ne kadar onunla kurulum uygulaması için tavsiye yok. Özellikle, ben ajax istekleri için özel, çok hafif ön yükleme oluşturmak için size tavsiye ediyorum. Ajax, normalde sadece denetleyici içine bırakarak önce bazı minimal önkoşulları gerekir. Olmayan ajax istekleri için, önerilen mimari (önyükleme, ön denetleyicisi + eklentileri, kontrolör + yardımcıları, modeli + views + yardımcıları) kullanarak normalde onları kurmak.

Başparmak Benim kişisel kural ben sadece gün boyunca yaklaşık 100 isteklere hizmet için gidiyorum, daha sonra bir şey optimize etmek için çok az neden var olmasıdır. Uygulama halsiz hissediyor başladığında yeterli gelir oluşturursa, belki ben değilse, vb apc, memcached, beanstalkd gibi çözümler her zaman vardır, özel bir sunucu alabilirsiniz

Ham PHP kodu vs Zend Framework saniye oranı başına bir 1:500 taleplerine yakın olma eğilimindedir.

Eğer çok fazla zaman ve para değil bir sürü varsa, ham PHP gelişir. Eğer biraz zaman ve yeterli para varsa, performans bakmadan hızlı olursa olsun ... her zaman daha sonra donanım ekleyebilirsiniz gelişir. Eğer ikisi arasında düşersen uygun gördüğünüz gibi, onu dengelemek.

Her ne kadar ben onu sevmediğim gibi, CakePHP yılında ZF daha hızlı geliştirildiği, bu nedenle zaman egzersizi için harika. CodeIgniter ya daha hızlı, ama çok yerleşik yoktur, bu nedenle ham PHP gitmeden şeylerin performans ucuna daha yakın.

Benim düşünceme göre, çerçeveler kriterler işe yaramaz. Onlar soyut durum hakkında bir şey söylemek, ancak performansı çok durumsal olduğunu. Sizin uygulamayı ölçmek ve optimize gerekir. Evet, Zend Framework bileşenlerin çok kullanırsanız uygulama gitmek ne kadar yapabilirsiniz bir sınırı muhtemelen var, ama sonra PHP bırakın ve C yazmak gerekiyor önce uygulama nasıl gidebiliriz hızlı bir sınırı da var Zend Framework yüksek yük sitede sadece iyi gerçekleştirmek, ancak bunun için bir çaba koymak zorunda yapmak mümkündür. Eğer don't kullanmak eğer var gibi.