File: reference.xml

package info (click to toggle)
php-doc 20061001-1
  • links: PTS
  • area: non-free
  • in suites: etch, etch-m68k
  • size: 45,764 kB
  • ctags: 1,611
  • sloc: xml: 502,485; php: 7,645; cpp: 500; makefile: 297; perl: 161; sh: 141; awk: 28
file content (156 lines) | stat: -rw-r--r-- 4,789 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.5 $ -->
<!-- Purpose: basic.php -->
<!-- Membership: pecl -->

 <reference id="ref.apd">
  <title>Advanced PHP debugger</title>
  <titleabbrev>APD</titleabbrev>
  <partintro>
    
  <section id="apd.intro">
    &reftitle.intro;
    <para>
     APD is the Advanced PHP Debugger. It was written to provide profiling and
     debugging capabilities for PHP code, as well as to provide the ability to
     print out a full stack backtrace. APD supports interactive debugging, but
     by default it writes data to trace files. It also offers event based
     logging so that varying levels of information (including function calls,
     arguments passed, timings, etc.) can be turned on or off for individual
     scripts.
    <caution>
    <para>
     APD is a Zend Extension, modifying the way the internals of PHP handle 
     function calls, and thus may or may not be compatible with other Zend 
     Extensions (for example Zend Optimizer). 
    </para>
    </caution>
    </para> 
   </section>

   &reference.apd.configure;

   &reference.apd.ini;

   <section id="apd.resources">
    &reftitle.resources;
    &no.resource;
   </section>

   <section id="apd.constants">
    &reftitle.constants;
    &no.constants;
   </section>

   <section id="apd.examples">
     <title>How to use PHP-APD in your scripts</title>
     <procedure>
     <step>
     <para>
      As the first line of your PHP script, call the apd_set_pprof_trace() function
      to start the trace:
     </para>
     <para>
      <programlisting role="php">
<![CDATA[
apd_set_pprof_trace();
]]>
      </programlisting>
     </para>
     <para>
     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.
     </para>
     </step>
     <step>
     <para>
      Now run your script. The dump output will be written to
      <filename>apd.dumpdir/pprof_pid.ext</filename>.
      <tip>
      <para>
        If 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: 
        <userinput>php -e -f script.php</userinput>
      </para>
      </tip>
     </para>

     </step>
     <step>
     <para>
      To display formatted profile data, issue the <command>pprofp</command>
      command with the sort and display options of your choice. The formatted
      output will look something like:
      <screen>
<![CDATA[
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
]]>
      </screen>
     </para>
     <para>
     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.
     </para>
     </step>
     <step>
     <para>
     To generate a calltree file that you can import into the KCacheGrind
     profile analysis application, issue the <command>pprof2calltree</command>
     comand.
     </para>
     </step>
     </procedure>
    </section>

    <section id="apd.contact">
     <title>Contact information</title>
     <para>
      If you have comments, bugfixes, enhancements or want to help developing 
      this beast, you can send an mail to 
      <ulink url="mailto:&email.apd;">&email.apd;</ulink>. Any help is very 
      welcome.
     </para>
    </section>
  </partintro>

&reference.apd.functions;

 </reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->