PHP kod performans sonuçlarını belirleme

5 Cevap php

Eğer internals aşina değilseniz eğer PHP kodu performans sonuçları nasıl belirleyebilirsiniz? Kod (yanında sadece bunu test yüklemek) yürütülürken nasıl anlamaya yolları var mı? Ben bellek kullanımı, algoritmalar için yürütme zamanı gibi şeyler arıyorum.

Belki Joel "internals okumak, sonra C öğrenmek", derdi, ama (ben isterdim ama aslında) ben gerçekten şu anda C öğrenmek için zaman yok.

5 Cevap

PHP kodu profile Xdebug uzantısı kullanın.

Valgrind veya benzer aşina değilseniz, o zaman Jordi Bunster cevabı @ eklemek için ...

Eğer Xdebug üzerinde profil yaşadığınız zaman, kodunuzda zaman alıyor ne bir grafik bir görünümünü elde etmek KCacheGrind veya WinCacheGrind olarak dökülüyor profil dosyalarını açabilirsiniz.

http://xdebug.org/docs/profiler: Neyse xdebug belgeler aynı zamanda sonuçlarını yorumlamak için nasıl ayrıntılı olarak açıklıyor

Eğer internals aşina olsa bile, yine de varsayımlarını test yüklemek gerekir. Ben farklı bir kod karşılaştırmak için PEAR Benchmark paketini kullanmak ister.

Kodunuzu izole edebilir, size yük testi basit tutabilirsiniz. Tipik bir tekniği her bir seçeneğe zamanlarda bazı dizi çalıştırmak ve bir hızlı olduğunu görmek için. Birkaç kez bir sınıf varsa Örneğin, bir test durumu yazabilir ve o en adım aracılığıyla koyar ve çalıştırın.

Bu tür microtime() ve memory_get_usage() kodunu çağırır veya varolan profil çözümleri birini kullanabilirsiniz yapışmasını gibi düşük seviyeli yaklaşımı kullanabilirsiniz:

  1. Xdebug (ücretsiz, açık kaynak kodlu)
  2. Zend Studio/Debugger profili (ticari)
  3. Zend Server Code Tracing (ticari)
  4. xhprof (ücretsiz, açık kaynak kodlu)

Her zamanki gibi, ticari araçlar güzel GUI ve güzel resimleri var, ama maliyet para, ücretsiz olanları ücretsiz, ama muhtemelen biraz daha fazla zaman yatırım olurdu.

Ayrıca PHP, CGI binary -T seçeneği ile bir kıyaslama modu vardır, birçok php-cgi -T 100 yourscript.php fakir bir adamın kriter yapmak için çalıştırmayı deneyin.

PHP uygulamaları onun zaman harcıyor grafiksel göstereceğim bir araç için SD PHP Profiler bakın.