xref: /netbsd-src/external/cddl/dtracetoolkit/dist/Docs/Examples/py_cputime_example.txt (revision c29d51755812ace2e87aeefdb06cb2b4dac7087a)
1*c29d5175SchristosThe following are examples of py_cputime.d.
2*c29d5175Schristos
3*c29d5175SchristosThis script traces the on-CPU time of JavaScript functions and prints a
4*c29d5175Schristosreport. Here it traces the example program, Code/Python/func_slow.py
5*c29d5175Schristos
6*c29d5175Schristos# py_cputime.d
7*c29d5175SchristosTracing... Hit Ctrl-C to end.
8*c29d5175Schristos^C
9*c29d5175Schristos
10*c29d5175SchristosCount,
11*c29d5175Schristos   FILE                 TYPE       NAME                                COUNT
12*c29d5175Schristos   UserDict.py          func       ?                                       1
13*c29d5175Schristos   UserDict.py          func       DictMixin                               1
14*c29d5175Schristos   UserDict.py          func       IterableUserDict                        1
15*c29d5175Schristos   UserDict.py          func       UserDict                                1
16*c29d5175Schristos   UserDict.py          func       __init__                                1
17*c29d5175Schristos   __init__.py          func       ?                                       1
18*c29d5175Schristos   __init__.py          func       CodecRegistryError                      1
19*c29d5175Schristos   __init__.py          func       normalize_encoding                      1
20*c29d5175Schristos   __init__.py          func       search_function                         1
21*c29d5175Schristos   aliases.py           func       ?                                       1
22*c29d5175Schristos   ascii.py             func       ?                                       1
23*c29d5175Schristos   ascii.py             func       Codec                                   1
24*c29d5175Schristos   ascii.py             func       StreamConverter                         1
25*c29d5175Schristos   ascii.py             func       StreamReader                            1
26*c29d5175Schristos   ascii.py             func       StreamWriter                            1
27*c29d5175Schristos   ascii.py             func       getregentry                             1
28*c29d5175Schristos   codecs.py            func       ?                                       1
29*c29d5175Schristos   codecs.py            func       Codec                                   1
30*c29d5175Schristos   codecs.py            func       StreamReader                            1
31*c29d5175Schristos   codecs.py            func       StreamReaderWriter                      1
32*c29d5175Schristos   codecs.py            func       StreamRecoder                           1
33*c29d5175Schristos   codecs.py            func       StreamWriter                            1
34*c29d5175Schristos   copy_reg.py          func       ?                                       1
35*c29d5175Schristos   func_slow.py         func       ?                                       1
36*c29d5175Schristos   func_slow.py         func       func_a                                  1
37*c29d5175Schristos   func_slow.py         func       func_b                                  1
38*c29d5175Schristos   func_slow.py         func       func_c                                  1
39*c29d5175Schristos   linecache.py         func       ?                                       1
40*c29d5175Schristos   os.py                func       ?                                       1
41*c29d5175Schristos   os.py                func       _Environ                                1
42*c29d5175Schristos   os.py                func       __init__                                1
43*c29d5175Schristos   os.py                func       _get_exports_list                       1
44*c29d5175Schristos   posixpath.py         func       ?                                       1
45*c29d5175Schristos   posixpath.py         func       basename                                1
46*c29d5175Schristos   posixpath.py         func       dirname                                 1
47*c29d5175Schristos   site.py              func       ?                                       1
48*c29d5175Schristos   site.py              func       _Helper                                 1
49*c29d5175Schristos   site.py              func       _Printer                                1
50*c29d5175Schristos   site.py              func       _init_pathinfo                          1
51*c29d5175Schristos   site.py              func       abs__file__                             1
52*c29d5175Schristos   site.py              func       addsitepackages                         1
53*c29d5175Schristos   site.py              func       aliasmbcs                               1
54*c29d5175Schristos   site.py              func       execsitecustomize                       1
55*c29d5175Schristos   site.py              func       main                                    1
56*c29d5175Schristos   site.py              func       removeduppaths                          1
57*c29d5175Schristos   site.py              func       setcopyright                            1
58*c29d5175Schristos   site.py              func       setencoding                             1
59*c29d5175Schristos   site.py              func       sethelper                               1
60*c29d5175Schristos   site.py              func       setquit                                 1
61*c29d5175Schristos   stat.py              func       ?                                       1
62*c29d5175Schristos   types.py             func       ?                                       1
63*c29d5175Schristos   types.py             func       _C                                      1
64*c29d5175Schristos   warnings.py          func       ?                                       1
65*c29d5175Schristos   warnings.py          func       _OptionError                            1
66*c29d5175Schristos   warnings.py          func       _processoptions                         1
67*c29d5175Schristos   posixpath.py         func       exists                                  2
68*c29d5175Schristos   posixpath.py         func       split                                   2
69*c29d5175Schristos   site.py              func       addsitedir                              2
70*c29d5175Schristos   warnings.py          func       simplefilter                            2
71*c29d5175Schristos   copy_reg.py          func       constructor                             3
72*c29d5175Schristos   copy_reg.py          func       pickle                                  3
73*c29d5175Schristos   site.py              func       __init__                                3
74*c29d5175Schristos   site.py              func       addpackage                              3
75*c29d5175Schristos   stat.py              func       S_IFMT                                  6
76*c29d5175Schristos   stat.py              func       S_ISDIR                                 6
77*c29d5175Schristos   posixpath.py         func       isdir                                   8
78*c29d5175Schristos   os.py                func       _exists                                10
79*c29d5175Schristos   <string>             func       ?                                      11
80*c29d5175Schristos   posixpath.py         func       normcase                               14
81*c29d5175Schristos   site.py              func       makepath                               14
82*c29d5175Schristos   posixpath.py         func       join                                   20
83*c29d5175Schristos   posixpath.py         func       abspath                                22
84*c29d5175Schristos   posixpath.py         func       isabs                                  22
85*c29d5175Schristos   posixpath.py         func       normpath                               22
86*c29d5175Schristos   -                    total      -                                     230
87*c29d5175Schristos
88*c29d5175SchristosExclusive function on-CPU times (us),
89*c29d5175Schristos   FILE                 TYPE       NAME                                TOTAL
90*c29d5175Schristos   ascii.py             func       StreamWriter                            1
91*c29d5175Schristos   __init__.py          func       CodecRegistryError                      1
92*c29d5175Schristos   ascii.py             func       StreamReader                            1
93*c29d5175Schristos   site.py              func       setencoding                             1
94*c29d5175Schristos   warnings.py          func       _OptionError                            1
95*c29d5175Schristos   UserDict.py          func       IterableUserDict                        1
96*c29d5175Schristos   site.py              func       aliasmbcs                               1
97*c29d5175Schristos   warnings.py          func       _processoptions                         1
98*c29d5175Schristos   types.py             func       _C                                      1
99*c29d5175Schristos   ascii.py             func       getregentry                             1
100*c29d5175Schristos   site.py              func       _Helper                                 2
101*c29d5175Schristos   ascii.py             func       Codec                                   2
102*c29d5175Schristos   ascii.py             func       StreamConverter                         2
103*c29d5175Schristos   site.py              func       sethelper                               2
104*c29d5175Schristos   codecs.py            func       Codec                                   2
105*c29d5175Schristos   UserDict.py          func       __init__                                3
106*c29d5175Schristos   posixpath.py         func       dirname                                 3
107*c29d5175Schristos   posixpath.py         func       basename                                3
108*c29d5175Schristos   site.py              func       _Printer                                3
109*c29d5175Schristos   os.py                func       _Environ                                3
110*c29d5175Schristos   codecs.py            func       StreamWriter                            3
111*c29d5175Schristos   site.py              func       setquit                                 3
112*c29d5175Schristos   copy_reg.py          func       constructor                             3
113*c29d5175Schristos   codecs.py            func       StreamRecoder                           4
114*c29d5175Schristos   codecs.py            func       StreamReaderWriter                      5
115*c29d5175Schristos   codecs.py            func       StreamReader                            5
116*c29d5175Schristos   os.py                func       __init__                                6
117*c29d5175Schristos   func_slow.py         func       ?                                       6
118*c29d5175Schristos   __init__.py          func       normalize_encoding                      7
119*c29d5175Schristos   site.py              func       __init__                                7
120*c29d5175Schristos   linecache.py         func       ?                                       7
121*c29d5175Schristos   warnings.py          func       simplefilter                            7
122*c29d5175Schristos   stat.py              func       S_IFMT                                  9
123*c29d5175Schristos   stat.py              func       ?                                      10
124*c29d5175Schristos   copy_reg.py          func       pickle                                 12
125*c29d5175Schristos   posixpath.py         func       split                                  12
126*c29d5175Schristos   posixpath.py         func       normcase                               15
127*c29d5175Schristos   stat.py              func       S_ISDIR                                17
128*c29d5175Schristos   site.py              func       addsitepackages                        20
129*c29d5175Schristos   UserDict.py          func       ?                                      20
130*c29d5175Schristos   site.py              func       setcopyright                           23
131*c29d5175Schristos   site.py              func       main                                   24
132*c29d5175Schristos   <string>             func       ?                                      28
133*c29d5175Schristos   UserDict.py          func       UserDict                               31
134*c29d5175Schristos   site.py              func       _init_pathinfo                         33
135*c29d5175Schristos   posixpath.py         func       exists                                 35
136*c29d5175Schristos   ascii.py             func       ?                                      38
137*c29d5175Schristos   posixpath.py         func       isabs                                  42
138*c29d5175Schristos   aliases.py           func       ?                                      43
139*c29d5175Schristos   site.py              func       removeduppaths                         51
140*c29d5175Schristos   site.py              func       abs__file__                            56
141*c29d5175Schristos   codecs.py            func       ?                                      75
142*c29d5175Schristos   types.py             func       ?                                      83
143*c29d5175Schristos   posixpath.py         func       join                                   85
144*c29d5175Schristos   site.py              func       makepath                               97
145*c29d5175Schristos   posixpath.py         func       abspath                                99
146*c29d5175Schristos   os.py                func       _get_exports_list                     132
147*c29d5175Schristos   __init__.py          func       search_function                       142
148*c29d5175Schristos   warnings.py          func       ?                                     171
149*c29d5175Schristos   UserDict.py          func       DictMixin                             182
150*c29d5175Schristos   posixpath.py         func       ?                                     192
151*c29d5175Schristos   copy_reg.py          func       ?                                     196
152*c29d5175Schristos   posixpath.py         func       normpath                              209
153*c29d5175Schristos   posixpath.py         func       isdir                                 255
154*c29d5175Schristos   site.py              func       addpackage                            375
155*c29d5175Schristos   site.py              func       addsitedir                            506
156*c29d5175Schristos   site.py              func       execsitecustomize                     540
157*c29d5175Schristos   site.py              func       ?                                     725
158*c29d5175Schristos   os.py                func       _exists                               802
159*c29d5175Schristos   os.py                func       ?                                    1138
160*c29d5175Schristos   __init__.py          func       ?                                    1199
161*c29d5175Schristos   func_slow.py         func       func_a                             229669
162*c29d5175Schristos   func_slow.py         func       func_b                             456371
163*c29d5175Schristos   func_slow.py         func       func_c                             686056
164*c29d5175Schristos   -                    total      -                                 1379951
165*c29d5175Schristos
166*c29d5175SchristosInclusive function on-CPU times (us),
167*c29d5175Schristos   FILE                 TYPE       NAME                                TOTAL
168*c29d5175Schristos   ascii.py             func       StreamWriter                            1
169*c29d5175Schristos   __init__.py          func       CodecRegistryError                      1
170*c29d5175Schristos   ascii.py             func       StreamReader                            1
171*c29d5175Schristos   site.py              func       setencoding                             1
172*c29d5175Schristos   warnings.py          func       _OptionError                            1
173*c29d5175Schristos   UserDict.py          func       IterableUserDict                        1
174*c29d5175Schristos   site.py              func       aliasmbcs                               1
175*c29d5175Schristos   warnings.py          func       _processoptions                         1
176*c29d5175Schristos   types.py             func       _C                                      1
177*c29d5175Schristos   ascii.py             func       getregentry                             1
178*c29d5175Schristos   site.py              func       _Helper                                 2
179*c29d5175Schristos   ascii.py             func       Codec                                   2
180*c29d5175Schristos   ascii.py             func       StreamConverter                         2
181*c29d5175Schristos   site.py              func       sethelper                               2
182*c29d5175Schristos   codecs.py            func       Codec                                   2
183*c29d5175Schristos   UserDict.py          func       __init__                                3
184*c29d5175Schristos   site.py              func       _Printer                                3
185*c29d5175Schristos   os.py                func       _Environ                                3
186*c29d5175Schristos   codecs.py            func       StreamWriter                            3
187*c29d5175Schristos   site.py              func       setquit                                 3
188*c29d5175Schristos   copy_reg.py          func       constructor                             3
189*c29d5175Schristos   codecs.py            func       StreamRecoder                           4
190*c29d5175Schristos   codecs.py            func       StreamReaderWriter                      5
191*c29d5175Schristos   codecs.py            func       StreamReader                            5
192*c29d5175Schristos   __init__.py          func       normalize_encoding                      7
193*c29d5175Schristos   site.py              func       __init__                                7
194*c29d5175Schristos   linecache.py         func       ?                                       7
195*c29d5175Schristos   warnings.py          func       simplefilter                            7
196*c29d5175Schristos   stat.py              func       S_IFMT                                  9
197*c29d5175Schristos   os.py                func       __init__                                9
198*c29d5175Schristos   posixpath.py         func       basename                                9
199*c29d5175Schristos   posixpath.py         func       dirname                                10
200*c29d5175Schristos   stat.py              func       ?                                      10
201*c29d5175Schristos   posixpath.py         func       split                                  12
202*c29d5175Schristos   posixpath.py         func       normcase                               15
203*c29d5175Schristos   copy_reg.py          func       pickle                                 15
204*c29d5175Schristos   stat.py              func       S_ISDIR                                26
205*c29d5175Schristos   UserDict.py          func       UserDict                               31
206*c29d5175Schristos   posixpath.py         func       exists                                 35
207*c29d5175Schristos   posixpath.py         func       isabs                                  42
208*c29d5175Schristos   aliases.py           func       ?                                      43
209*c29d5175Schristos   site.py              func       setcopyright                           44
210*c29d5175Schristos   ascii.py             func       ?                                      45
211*c29d5175Schristos   types.py             func       ?                                      85
212*c29d5175Schristos   posixpath.py         func       join                                   85
213*c29d5175Schristos   codecs.py            func       ?                                      97
214*c29d5175Schristos   os.py                func       _get_exports_list                     132
215*c29d5175Schristos   site.py              func       removeduppaths                        171
216*c29d5175Schristos   UserDict.py          func       DictMixin                             182
217*c29d5175Schristos   site.py              func       abs__file__                           184
218*c29d5175Schristos   warnings.py          func       ?                                     190
219*c29d5175Schristos   __init__.py          func       search_function                       196
220*c29d5175Schristos   posixpath.py         func       ?                                     202
221*c29d5175Schristos   posixpath.py         func       normpath                              209
222*c29d5175Schristos   UserDict.py          func       ?                                     235
223*c29d5175Schristos   posixpath.py         func       isdir                                 281
224*c29d5175Schristos   copy_reg.py          func       ?                                     288
225*c29d5175Schristos   posixpath.py         func       abspath                               351
226*c29d5175Schristos   site.py              func       _init_pathinfo                        392
227*c29d5175Schristos   site.py              func       makepath                              395
228*c29d5175Schristos   site.py              func       execsitecustomize                     540
229*c29d5175Schristos   os.py                func       _exists                               819
230*c29d5175Schristos   <string>             func       ?                                     973
231*c29d5175Schristos   __init__.py          func       ?                                    1341
232*c29d5175Schristos   site.py              func       addpackage                           1470
233*c29d5175Schristos   site.py              func       addsitepackages                      1562
234*c29d5175Schristos   site.py              func       addsitedir                           2420
235*c29d5175Schristos   site.py              func       main                                 2546
236*c29d5175Schristos   os.py                func       ?                                    2839
237*c29d5175Schristos   site.py              func       ?                                    6118
238*c29d5175Schristos   func_slow.py         func       func_c                             686056
239*c29d5175Schristos   func_slow.py         func       func_b                            1142427
240*c29d5175Schristos   func_slow.py         func       func_a                            1372097
241*c29d5175Schristos   func_slow.py         func       ?                                 1372104
242*c29d5175Schristos
243*c29d5175SchristosYou can see the results are printed in three sections.
244*c29d5175Schristos
245*c29d5175SchristosThe first section reports how many times each function was called.
246*c29d5175Schristos
247*c29d5175SchristosThe exclusive function on-CPU times shows, amongst other results that func_a
248*c29d5175Schristosspent around 0.22 seconds on-CPU.  This times excludes time spent in
249*c29d5175Schristosother functions.
250*c29d5175Schristos
251*c29d5175SchristosThe inclusive function on-CPU times show that func_a spent around 1.4
252*c29d5175Schristosseconds on-CPU.  This includes the time spent in other functions called.
253*c29d5175Schristos
254*c29d5175SchristosThese on-CPU times are the time the thread spent running on a CPU, from when
255*c29d5175Schristosthe subroutine began to when it completed. This does not include time
256*c29d5175Schristosspent off-CPU time such as sleeping for I/O or waiting for scheduling.
257*c29d5175Schristos
258*c29d5175SchristosOn-CPU times are useful for showing who is causing the CPUs to be busy.
259*c29d5175SchristosSee Notes/ALLoncpu_notes.txt for more details. Also see
260*c29d5175SchristosNotes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
261*c29d5175Schristosdetailed explanation of exclusive vs inclusive subroutine time.
262*c29d5175Schristos
263