Hız benim PHP komut test hakkında gitmek nasıl?

4 Cevap php

Ben yavaş yavaş çalışan bir komut dosyası var ve ben zaman ve hızını artırmak giderir görmek nasıl merak ediyordum. PHP zamanlayıcı çeşit var mı?

Güncelleme: Düşünce açıklığa kavuşturmak gerekir ... yavaş çalışan komut listesindeki herkese bir e-posta gönderir benim e-posta listesi betik. Yani abonelerin bir dizi döngü ve onları tek bir e-posta birini gönderiyorum. Ben o dizide olsa yineleme ne kadar uzun sürdü görmek ilginç olacağını düşündüm o kadar yavaş. Yani ben test etmek için hızlı ve kolay bir yol arıyorum.

4 Cevap

Ben buna benzer buldum bir zamanlayıcı sınıfını kullanarak sona erdi: http://forum.codecall.net/php-tutorials/4254-php-timer-class.html

Ben sadece benim döngü başında bir zamanlayıcı başladı ve her yinelemenin sonunda süresi kaydedilir. Öğrendim, ortalama olarak, e-posta başına 3 ile 4 saniye arasında alıyordu! E-posta patlamanın başına beş dakika biraz çok fazla. Refactor zamanı ...

Ben biliyorum, ve her zaman kullanmak en iyi şey, bir profiler kullanmaktır. Seçim benim profiler olduğunu Xdebug vardır hangi oldukça kolaydır profilcisine dahili ve PHP kurulum yüklü alıyorum. Kurulduğunda ve koşma, size hata ayıklama ve profil her türlü bilgi verebilir ve bir iseniz Xdebug çıkış biçimi şaşırtıcı kCacheGrind tool (visualizing and reporting on the stack and graphing your application flow) tarafından okunabilir mutlu Linux kamp. Ben bu araçları olmadan ne yapardı!?

Çoğunlukla muhtemelen Zend_Registry sınıfını kullanmalısınız Zend_Cache sınıfı yeterli, ya da kıvrık sınıf hiearchies kullanarak değil ilişkili Zend Framework, gelince de, hız açısından bir kaç zorluk var.

Mutlu profilleme.

Sayfanızın yükleme süresini ölçmek ve gerektiğinde ayarlayabilirsiniz.

I http://www.phpbench.com/ php temel ihtiyaçları hakkında daha fazla söylemek gibi web sitelerini seviyorum.

Offcourse Zend Framework gerçekten aslında kodu hakkında bir şey söylemiyor kullanarak php yazmaya. Eğer zend kodlama standartlarını takip ediyor musunuz?

http://www.php.net/getrusage sizin zamanlama sorunu için yararlı olabilir.

İyi şanslar!

edit: (hem de php.net sayfasında refere) getrusage fonksiyonu için ekstra bir bağlantı.

2 düzenleyin: posta listesi için biraz zaman kazandırır önce döngü sayısı ile örneğin phpbench.com kontrol edebilir.

Eğer e-postalarınızı nasıl gönderiyor? Bu bir darboğaz olabilir.

İyi şanslar!

Nasıl bir kuyruk kullanma hakkında? Liste bir gün büyüdükçe posta sunucusunun sınırlarını vurmak gerekir çünkü, benim için iyi bir fikir gibi görünüyor. Orada bir popular implementation in PEAR Bu kuyruk şey var, ama temelde tüm ihtiyacınız bir cron işi ve bir veritabanı tablosu olur.

Ben bu yüzden ne görmek için ilgileniyorum ZF benzer bir şey yapıyorum!