PHP-APD'yi betiklerde kullanmak
-
İzlemeyi başlatmak için PHP betiğinizin ilk satırında apd_set_pprof_trace() işlevini çağırın.
apd_set_pprof_trace();İşlevi betiğinizdeki herhangi bir satıra da ekleyebilirsiniz, fakat eğer izlemeye betiğinizin başından başlamazsanız diğer şekilde sizi bir başarım dar boğazına sürükleyebilecek olan profil bilgisini atmış olacaksınız.
-
Şimdi betiği çalıştırın. Döküm çıktısı apd.dumpdir/pprof_pid.ext dosyasına yazılacaktır.
İpucuEğer PHP'nin CGI sürümünde çalışıyorsanız, apd'nin doğru şekilde çalışması için '-e' seçeneğini kullanarak genişletilmiş bilgiyi etkinleştirmeniz gerekecek. Örneğin:
php -e -f script.php -
Biçimlendirilmiş profil bilgisini göstermek için, pprofp komutunu istediğiniz sıralama ve gösterme seçenekleri ile çalıştırın. Biçimlendirilmiş çıktı aşağıdaki gibi görünecektir:
bash-2.05b$ pprofp -R /tmp/pprof.22141.0 Trace for /home/dan/testapd.php Total Elapsed Time = 0.00 Total System Time = 0.00 Total User Time = 0.00 Real User System secs/ cumm %Time (excl/cumm) (excl/cumm) (excl/cumm) Calls call s/call Memory Usage Name -------------------------------------------------------------------------------------- 100.0 0.00 0.00 0.00 0.00 0.00 0.00 1 0.0000 0.0009 0 main 56.9 0.00 0.00 0.00 0.00 0.00 0.00 1 0.0005 0.0005 0 apd_set_pprof_trace 28.0 0.00 0.00 0.00 0.00 0.00 0.00 10 0.0000 0.0000 0 preg_replace 14.3 0.00 0.00 0.00 0.00 0.00 0.00 10 0.0000 0.0000 0 str_replace
Bu örnekte kullanılan -R seçeneği profil tablosunu betiğin verili işlevi yürütürken kullandığı gerçek zaman miktarına göre sıralar. "cumm call" sütunu her işlevin ortalama kaç kez çağrıldığını, "s/call" sütunu da her işlev çağrısı için ortalama kaç saniye gerektiğini gösterir
-
KCacheGrind profil çözümleme uygulamasına aktarabileceğiniz bir çağrı-ağacı dosyası oluşturmak için, pprof2calltree komutunu verin.
