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