How to use PHP-APD in your scripts
How to use PHP-APD in your scripts
How to use PHP-APD in your scripts
-
As the first line of your PHP script, call the
apd_set_pprof_trace() function to start the trace:<?php
apd_set_pprof_trace();
?>You can insert the line anywhere in your script,
but if you do not start tracing at the beginning of your script you
discard profile data that might otherwise lead you to a performance
bottleneck. -
Now run your script. The dump output will be
written to apd.dumpdir/pprof_pid.ext.TipIf you’re running the CGI version of PHP, you will
need to add the ‘-e’ flag to enable extended information for apd to
work properly. For example:php -e
-f script.php -
To display formatted profile data, issue the
pprofp command with the sort and
display options of your choice. The formatted output will look
something like: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
The -R option used in this example sorts the
profile table by the amount of real time the script spent executing
a given function. The “cumm call” column reveals how many times
each function was called, and the “s/call” column reveals how many
seconds each call to the function required, on average. -
To generate a calltree file that you can import
into the KCacheGrind profile analysis application, issue the
pprof2calltree comand.