Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

The following are examples of py_cputime.d.

This script traces the on-CPU time of JavaScript functions and prints a
report. Here it traces the example program, Code/Python/func_slow.py

# py_cputime.d
Tracing... Hit Ctrl-C to end.
^C

Count,
   FILE                 TYPE       NAME                                COUNT
   UserDict.py          func       ?                                       1
   UserDict.py          func       DictMixin                               1
   UserDict.py          func       IterableUserDict                        1
   UserDict.py          func       UserDict                                1
   UserDict.py          func       __init__                                1
   __init__.py          func       ?                                       1
   __init__.py          func       CodecRegistryError                      1
   __init__.py          func       normalize_encoding                      1
   __init__.py          func       search_function                         1
   aliases.py           func       ?                                       1
   ascii.py             func       ?                                       1
   ascii.py             func       Codec                                   1
   ascii.py             func       StreamConverter                         1
   ascii.py             func       StreamReader                            1
   ascii.py             func       StreamWriter                            1
   ascii.py             func       getregentry                             1
   codecs.py            func       ?                                       1
   codecs.py            func       Codec                                   1
   codecs.py            func       StreamReader                            1
   codecs.py            func       StreamReaderWriter                      1
   codecs.py            func       StreamRecoder                           1
   codecs.py            func       StreamWriter                            1
   copy_reg.py          func       ?                                       1
   func_slow.py         func       ?                                       1
   func_slow.py         func       func_a                                  1
   func_slow.py         func       func_b                                  1
   func_slow.py         func       func_c                                  1
   linecache.py         func       ?                                       1
   os.py                func       ?                                       1
   os.py                func       _Environ                                1
   os.py                func       __init__                                1
   os.py                func       _get_exports_list                       1
   posixpath.py         func       ?                                       1
   posixpath.py         func       basename                                1
   posixpath.py         func       dirname                                 1
   site.py              func       ?                                       1
   site.py              func       _Helper                                 1
   site.py              func       _Printer                                1
   site.py              func       _init_pathinfo                          1
   site.py              func       abs__file__                             1
   site.py              func       addsitepackages                         1
   site.py              func       aliasmbcs                               1
   site.py              func       execsitecustomize                       1
   site.py              func       main                                    1
   site.py              func       removeduppaths                          1
   site.py              func       setcopyright                            1
   site.py              func       setencoding                             1
   site.py              func       sethelper                               1
   site.py              func       setquit                                 1
   stat.py              func       ?                                       1
   types.py             func       ?                                       1
   types.py             func       _C                                      1
   warnings.py          func       ?                                       1
   warnings.py          func       _OptionError                            1
   warnings.py          func       _processoptions                         1
   posixpath.py         func       exists                                  2
   posixpath.py         func       split                                   2
   site.py              func       addsitedir                              2
   warnings.py          func       simplefilter                            2
   copy_reg.py          func       constructor                             3
   copy_reg.py          func       pickle                                  3
   site.py              func       __init__                                3
   site.py              func       addpackage                              3
   stat.py              func       S_IFMT                                  6
   stat.py              func       S_ISDIR                                 6
   posixpath.py         func       isdir                                   8
   os.py                func       _exists                                10
   <string>             func       ?                                      11
   posixpath.py         func       normcase                               14
   site.py              func       makepath                               14
   posixpath.py         func       join                                   20
   posixpath.py         func       abspath                                22
   posixpath.py         func       isabs                                  22
   posixpath.py         func       normpath                               22
   -                    total      -                                     230

Exclusive function on-CPU times (us),
   FILE                 TYPE       NAME                                TOTAL
   ascii.py             func       StreamWriter                            1
   __init__.py          func       CodecRegistryError                      1
   ascii.py             func       StreamReader                            1
   site.py              func       setencoding                             1
   warnings.py          func       _OptionError                            1
   UserDict.py          func       IterableUserDict                        1
   site.py              func       aliasmbcs                               1
   warnings.py          func       _processoptions                         1
   types.py             func       _C                                      1
   ascii.py             func       getregentry                             1
   site.py              func       _Helper                                 2
   ascii.py             func       Codec                                   2
   ascii.py             func       StreamConverter                         2
   site.py              func       sethelper                               2
   codecs.py            func       Codec                                   2
   UserDict.py          func       __init__                                3
   posixpath.py         func       dirname                                 3
   posixpath.py         func       basename                                3
   site.py              func       _Printer                                3
   os.py                func       _Environ                                3
   codecs.py            func       StreamWriter                            3
   site.py              func       setquit                                 3
   copy_reg.py          func       constructor                             3
   codecs.py            func       StreamRecoder                           4
   codecs.py            func       StreamReaderWriter                      5
   codecs.py            func       StreamReader                            5
   os.py                func       __init__                                6
   func_slow.py         func       ?                                       6
   __init__.py          func       normalize_encoding                      7
   site.py              func       __init__                                7
   linecache.py         func       ?                                       7
   warnings.py          func       simplefilter                            7
   stat.py              func       S_IFMT                                  9
   stat.py              func       ?                                      10
   copy_reg.py          func       pickle                                 12
   posixpath.py         func       split                                  12
   posixpath.py         func       normcase                               15
   stat.py              func       S_ISDIR                                17
   site.py              func       addsitepackages                        20
   UserDict.py          func       ?                                      20
   site.py              func       setcopyright                           23
   site.py              func       main                                   24
   <string>             func       ?                                      28
   UserDict.py          func       UserDict                               31
   site.py              func       _init_pathinfo                         33
   posixpath.py         func       exists                                 35
   ascii.py             func       ?                                      38
   posixpath.py         func       isabs                                  42
   aliases.py           func       ?                                      43
   site.py              func       removeduppaths                         51
   site.py              func       abs__file__                            56
   codecs.py            func       ?                                      75
   types.py             func       ?                                      83
   posixpath.py         func       join                                   85
   site.py              func       makepath                               97
   posixpath.py         func       abspath                                99
   os.py                func       _get_exports_list                     132
   __init__.py          func       search_function                       142
   warnings.py          func       ?                                     171
   UserDict.py          func       DictMixin                             182
   posixpath.py         func       ?                                     192
   copy_reg.py          func       ?                                     196
   posixpath.py         func       normpath                              209
   posixpath.py         func       isdir                                 255
   site.py              func       addpackage                            375
   site.py              func       addsitedir                            506
   site.py              func       execsitecustomize                     540
   site.py              func       ?                                     725
   os.py                func       _exists                               802
   os.py                func       ?                                    1138
   __init__.py          func       ?                                    1199
   func_slow.py         func       func_a                             229669
   func_slow.py         func       func_b                             456371
   func_slow.py         func       func_c                             686056
   -                    total      -                                 1379951

Inclusive function on-CPU times (us),
   FILE                 TYPE       NAME                                TOTAL
   ascii.py             func       StreamWriter                            1
   __init__.py          func       CodecRegistryError                      1
   ascii.py             func       StreamReader                            1
   site.py              func       setencoding                             1
   warnings.py          func       _OptionError                            1
   UserDict.py          func       IterableUserDict                        1
   site.py              func       aliasmbcs                               1
   warnings.py          func       _processoptions                         1
   types.py             func       _C                                      1
   ascii.py             func       getregentry                             1
   site.py              func       _Helper                                 2
   ascii.py             func       Codec                                   2
   ascii.py             func       StreamConverter                         2
   site.py              func       sethelper                               2
   codecs.py            func       Codec                                   2
   UserDict.py          func       __init__                                3
   site.py              func       _Printer                                3
   os.py                func       _Environ                                3
   codecs.py            func       StreamWriter                            3
   site.py              func       setquit                                 3
   copy_reg.py          func       constructor                             3
   codecs.py            func       StreamRecoder                           4
   codecs.py            func       StreamReaderWriter                      5
   codecs.py            func       StreamReader                            5
   __init__.py          func       normalize_encoding                      7
   site.py              func       __init__                                7
   linecache.py         func       ?                                       7
   warnings.py          func       simplefilter                            7
   stat.py              func       S_IFMT                                  9
   os.py                func       __init__                                9
   posixpath.py         func       basename                                9
   posixpath.py         func       dirname                                10
   stat.py              func       ?                                      10
   posixpath.py         func       split                                  12
   posixpath.py         func       normcase                               15
   copy_reg.py          func       pickle                                 15
   stat.py              func       S_ISDIR                                26
   UserDict.py          func       UserDict                               31
   posixpath.py         func       exists                                 35
   posixpath.py         func       isabs                                  42
   aliases.py           func       ?                                      43
   site.py              func       setcopyright                           44
   ascii.py             func       ?                                      45
   types.py             func       ?                                      85
   posixpath.py         func       join                                   85
   codecs.py            func       ?                                      97
   os.py                func       _get_exports_list                     132
   site.py              func       removeduppaths                        171
   UserDict.py          func       DictMixin                             182
   site.py              func       abs__file__                           184
   warnings.py          func       ?                                     190
   __init__.py          func       search_function                       196
   posixpath.py         func       ?                                     202
   posixpath.py         func       normpath                              209
   UserDict.py          func       ?                                     235
   posixpath.py         func       isdir                                 281
   copy_reg.py          func       ?                                     288
   posixpath.py         func       abspath                               351
   site.py              func       _init_pathinfo                        392
   site.py              func       makepath                              395
   site.py              func       execsitecustomize                     540
   os.py                func       _exists                               819
   <string>             func       ?                                     973
   __init__.py          func       ?                                    1341
   site.py              func       addpackage                           1470
   site.py              func       addsitepackages                      1562
   site.py              func       addsitedir                           2420
   site.py              func       main                                 2546
   os.py                func       ?                                    2839
   site.py              func       ?                                    6118
   func_slow.py         func       func_c                             686056
   func_slow.py         func       func_b                            1142427
   func_slow.py         func       func_a                            1372097
   func_slow.py         func       ?                                 1372104

You can see the results are printed in three sections.

The first section reports how many times each function was called.

The exclusive function on-CPU times shows, amongst other results that func_a
spent around 0.22 seconds on-CPU.  This times excludes time spent in
other functions.

The inclusive function on-CPU times show that func_a spent around 1.4
seconds on-CPU.  This includes the time spent in other functions called.

These on-CPU times are the time the thread spent running on a CPU, from when
the subroutine began to when it completed. This does not include time
spent off-CPU time such as sleeping for I/O or waiting for scheduling.

On-CPU times are useful for showing who is causing the CPUs to be busy.
See Notes/ALLoncpu_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.