Python çerçeveler vs PHP ölçekleme maliyeti vs ölçekleme Raylar Maliyeti

3 Cevap php

Bu soru etrafında bir çok sorulan olmuştur sanırım. Ben bunun üzerinde çalıştı ve bu harika çünkü Rails can scale biliyorum. Ve bu konuda çok şüphe kadarıyla PHP çerçeveler ile ilgili olarak yoktur.

Ben çerçeveler daha iyi olduğunu bilmek istemiyorum.

Ayda 1 milyon ziyaret ile büyük bir app varsayarak diğer çerçeveler (PHP, Python) vs Rayları ölçekleme maliyet farkı ne kadar?

Bu benim çok sorulan bir şeydir. Ben "Raylar oldukça iyi ölçek yok" insanlara anlatmak olabilir, ancak uzun vadede, ekonomi nelerdir?

Biri bazı ölçümler sağlayabilir, bu harika olurdu.

3 Cevap

Bu önemli bir faktör çerçeve seçimi etkilenmez olmasıdır veritabanı erişimi. Hayır ne almak yaklaşım, büyük olasılıkla bir ilişkisel veritabanı veri koymak. Sonra soru veritabanından veri almak nasıl verimli olduğunu. Bu öncelikle RDBMS (MySQL vs Postgres vs Oracle) bağlıdır, değil çerçeve üzerinde - bazı veri haritalama kütüphane SQL verimsiz kullanımı yapabilir dışında.

Parametresi saf "ziyaret sayısı" için, soru gerçekten HTML şablon sistemi nasıl çalıştığını hızlı. Yani soru şu: Eğer saniyede kaç sayfa işleyebilir? Ben bir sistem ölçek ne kadar iyi belirlemek için bu temel ölçümleri yapacak.

Tabii ki, farklı sayfaları farklı maliyetleri olabilir; bazıları için, sen değil başkaları için, önbelleğe kullanabilirsiniz. Yani ölçeklenebilirlik ölçme, ucuz ve pahalı sayfaları içine 1000000 ziyaretleri bölmek ve ayrı ayrı ölçün. Birlikte, sistem alabilir yük (veya talebi karşılamak için gereken sistemlerin sayısı) iyi bir tahmin vermelidir.

Bellek kullanımı sorunu da vardır. Eğer SQL veri varsa, bu önemli değil - ama önbelleğe alma ile, ayrıca ölçeklenebilirlik wrt dikkate almak gerekebilir. Ana bellek kullanımı.

Bunların hiçbiri dahil "ölçeklenebilirlik piller" var çünkü ölçekleme maliyeti, bu üç arasında herhangi bir farklı olacak sanmıyorum IMHO. Ben sadece ölçekleme önemli bir farklılığa neden olur, bu üç seçenek arasında herhangi bir büyük mimari fark görmüyorum.

Diğer bir deyişle, uygulama mimarisi uygulama ne olursa olsun üç dilden hangi ölçekler nasıl hakim olacak.

Eğer bellek önbelleğe alma ihtiyacınız varsa, en azından kullanım memcached (veya her üç dilde arayüz olarak benzer bir şey) için gidiyoruz. Belki memcache doğrudan hizmet için nginx kullanarak ölçeklenebilirlik yardım, ama bu php / perl / python / yakut performansını değiştirmek için gidiyor belli değil.

Eğer MySQL veya PostgreSQL kullanmak eğer hala ne olursa olsun app dil ​​ölçekleme için doğru veritabanı tasarımı zorunda gidiyoruz, ve kümeleme / yansıtma başlatmak için kullandığınız herhangi bir araç app dışında olacak.

Ben (mod_wsgi daemon modu ile) bellek kullanımı Python açısından düşünmek ve Ruby (yolcu / mod_rack ile kurumsal yakut) fcgi altında PHP azından karşılaştırılabilir ve (yani apache MPM prefork + php mod_php altında PHP muhtemelen daha iyi oldukça iyi ayak izleri var tüm apache işlemler) bellek çok berbat.

Bu soru ilginç olabilir nerede Erlang gibi bir şey vs bu 3 dil karşılaştırmak için çalışıyor nereye (sözde) ucuz herşey Erlang süreçlerinde otomatik olarak ölçeklenebilirlik yerleşik var, ama o zaman bile güzel app sürece bir RDBMS veritabanı darboğaz olacak örneğin, şeyler yapmanın Erlang veritabanı yollarından biri sığar CouchDB.

Ne yazık ki, ben Rails, PHP ve Django herhangi bir maliyet karşılaştırması bilmiyorum. Bahar (9k $), Wicket (59k $), GWT (6k $) ve JSF (49k $): Ama bazı Java Web Altyapıları bir maliyet karşılaştırması biliyorum.

Burada orijinal bir konferans var:

http://www.devoxx.com/display/DV11/WWW++World+Wide+Wait++A+Performance+Comparison+of+Java+Web+Frameworks

İşte bunu (kısa) hakkında bir yazı var:

http://blog.websitesframeworks.com/2013/03/web-frameworks-benchmarks-192/

Bu maliyeti hakkında infere denemek istiyorum. Sen Techempower tarafından önerilen bencharmk ile bu verileri çapraz olabilir:

http://www.techempower.com/benchmarks/

Yani, biliyorsanız Bahar oldukça ucuz WICKET karşılaştırmak ve Django / Raylar Wicket ve Spring daha testlerde kötü işaretleri var, muhtemelen daha yüksek bir maliyeti temsil edecek demektir.

Umarım yardımcı olur.