PHP-APD'yi betiklerde kullanmak

  1. İzlemeyi başlatmak için PHP betiğinizin ilk satırında apd_set_pprof_trace() işlevini çağırın.

    <?php
    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.

  2. Şimdi betiği çalıştırın. Döküm çıktısı apd.dumpdir/pprof_pid.ext dosyasına yazılacaktır.

    İpucu

    Eğ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

  3. 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

  4. KCacheGrind profil çözümleme uygulamasına aktarabileceğiniz bir çağrı-ağacı dosyası oluşturmak için, pprof2calltree komutunu verin.