2010-04-18 13 views
5

Şu anda kişisel bir proje için PHP MVC Framework geliştiriyorum. Çerçeveyi geliştirirken, optimizasyon için farklı teknikler uygulayarak kayda değer bir performans görmek istiyorum. Ben mircotime kaydeder ham BenchMark sınıfı hayata geçirdim.PHP Performans Ölçütleri

Sorun şu ki yürütme süreleri için referans çerçevesi yok. Bu projenin başlangıcına çok yakın bir veritabanı bağlantısı ve birkaç sorgu ile ancak çıktı yok (bazı hata ayıklama metinleri ve BenchMark günlüğü). Geçerli bir yürütme sürem var 0.01917 seconds.

Bunun daha düşük olmasını beklerdim ama daha önce de söylediğim gibi referans çerçevesi yok. Performansı değerlendirirken göz önünde bulundurulması gereken birçok değişken var. Ancak, bir ölçüyü
a) bulmayı umuyorum. A) örneğin saniyedeki istekleri ölçmek için teknikler ve
b) sonuçları karşılaştırın; Bir "standart" web sunucusu üzerinde "orta ölçekli" bir PHP uygulaması nasıl gerçekleştirir. "Orta derecede" ve "standart" kelimelerinin çok öznel kelimeler olduğunu, dolayısıyla belirli bir uygulama için bilinen yürütme süreleri tablosunu (örn. StackOverFlow'un yürütme zamanı) takdir ediyorum.

Diğer ölçüm teknikleri teknikleri, yürütme süreleri dışında nelerdir?

MVC Framework Performance Comparisom görüntülendiğinde, saniyedeki İstekler (RPS) hakkında konuşur. Bu nasıl hesaplanır? Şu anki yürütme süremi 0.01917 seconds ile tahmin ediyorum 52 RPS (= 1/0.01917) işleyebilir. Bu, özellikle mevcut sınırlı işlevlerimi düşündüğünüzde, grafik üzerinde alıntılanandan önemli ölçüde daha düşük görünmektedir.

cevap

1

Belirli bir sayfayı karşılaştırmak için ab kullanın. Sunucudaki bir sayfa yükünü karşılaştırmak için siege'u deneyin. Bununla birlikte, her ikisi de hala çoğunlukla yapay testlerdir. Kişisel olarak fazladan günlükler ekliyorum. Sayfa başına

  • Sorgu sayımı günlüğü çok mümkünse veritabanında web sunucusu (veya vekil, ne olursa olsun)
  • Yavaş sorgu günlüğü içinde

    • Sayfa yükleme süresi, bu şekilde size sayfalar ne kadar ağır bileceksiniz ;)
  • 0

    Kodunuzu profillemek için xdebug kullanabilirsiniz. Fakat geliştirme sürecinin çok erken bir şekilde optimizasyonunu yapıyorsunuz. Sadece mikroişlem arama eylemi sisteme bir çağrı yapmak zorunda olduğu için (PHP motoru dışında) şeyleri yavaşlatır. Herbiri, nesne oluşturma, başka bir kaynağa (yani veritabanına) bağlantı, nispeten konuşulan çok fazla hava ekleyecektir.

    Sisteminizi çok önbellek dostu olacak şekilde tasarlıyorsanız, kod yürütmeniz gerekmez. Örneğin, WordPress çok yavaştır. İyi bir web sunucusunda yaklaşık 15 sayfa/sn. Çok fazla içerir ve çok fazla kod çalıştırır. Ancak SuperCache eklentisini ekleyin ve performans 10 kat artar. Bir önbellek dosyası oluşturarak ve bazı Apache kurallarını kullanarak çalışır, böylece PHP'nin hiç çalışması gerekmez.

    İlgili konular