The following are examples of php_calldist.d. This script traces the elapsed time of PHP functions and prints a report containing distribution plots per subroutine. Here it traces the example program Code/Php/func_abc.php. # php_calldist.d Tracing... Hit Ctrl-C to end. ^C Exclusive function elapsed times (us), func_abc.php, func, func_a value ------------- Distribution ------------- count 128 | 0 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 512 | 0 func_abc.php, func, func_b value ------------- Distribution ------------- count 128 | 0 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 512 | 0 func_abc.php, func, func_c value ------------- Distribution ------------- count 128 | 0 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 512 | 0 func_abc.php, func, sleep value ------------- Distribution ------------- count 262144 | 0 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3 1048576 | 0 Inclusive function elapsed times (us), func_abc.php, func, func_c value ------------- Distribution ------------- count 262144 | 0 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 1048576 | 0 func_abc.php, func, func_b value ------------- Distribution ------------- count 524288 | 0 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 2097152 | 0 func_abc.php, func, sleep value ------------- Distribution ------------- count 262144 | 0 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3 1048576 | 0 func_abc.php, func, func_a value ------------- Distribution ------------- count 1048576 | 0 2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 4194304 | 0 In total, 3 subroutines were called, one each of func_a(), func_b() and func_c(), and sleep was called 3 times. You can see this reflected in the "count" column on the right. The exclusive subroutine elapsed times show that each subroutine spent between 256 and 512 microseconds. This time excludes the time spent in other subroutines. The inclusive subroutine elapsed times show that func_c() took between 0.5 seconds and 1 second, func_b() took between 1 second and 2.1 seconds, and func_a() took between 2.1 seconds and 4.2 seconds to execute. This time includes the time spent in other subroutines called, and since func_a() called func_b() which called func_c(), these times make sense. These elapsed times are the absolute time from when the subroutine began to when it completed - which includes off-CPU time due to other system events such as I/O, scheduling, interrupts, etc. Elapsed times are useful for identifying where latencies are. See Notes/ALLelapsed_notes.txt for more details. Also see Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a detailed explanation of exclusive vs inclusive subroutine time. |