diff options
Diffstat (limited to 'Examples/py_malloc_example.txt')
-rw-r--r-- | Examples/py_malloc_example.txt | 508 |
1 files changed, 508 insertions, 0 deletions
diff --git a/Examples/py_malloc_example.txt b/Examples/py_malloc_example.txt new file mode 100644 index 0000000..be8fc25 --- /dev/null +++ b/Examples/py_malloc_example.txt @@ -0,0 +1,508 @@ +The following are examples of py_malloc.d + +This is an experimental script to identify who is calling malloc() for memory +allocation, and to print distribution plots of the requested bytes. Here you +can see it running on Code/Python/func_abc.py + +# py_malloc.d -c ./func_abc.py +Tracing... Hit Ctrl-C to end. +Function A +Function B +Function C + +Python malloc byte distributions by engine caller, + + libpython2.4.so.1.0`_PyUnicode_New, total bytes = 2 + value ------------- Distribution ------------- count + 1 | 0 + 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 + 4 | 0 + + libpython2.4.so.1.0`find_key, total bytes = 16 + value ------------- Distribution ------------- count + 8 | 0 + 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 + 32 | 0 + + libpython2.4.so.1.0`PyInterpreterState_New, total bytes = 36 + value ------------- Distribution ------------- count + 16 | 0 + 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 + 64 | 0 + + libpython2.4.so.1.0`_PyImport_Init, total bytes = 60 + value ------------- Distribution ------------- count + 16 | 0 + 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 + 64 | 0 + + libpython2.4.so.1.0`PyThreadState_New, total bytes = 84 + value ------------- Distribution ------------- count + 32 | 0 + 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 + 128 | 0 + + libpython2.4.so.1.0`pmerge, total bytes = 132 + value ------------- Distribution ------------- count + 2 | 0 + 4 |@@ 1 + 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 16 + 16 | 0 + + libpython2.4.so.1.0`PyThread_allocate_lock, total bytes = 144 + value ------------- Distribution ------------- count + 16 | 0 + 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3 + 64 | 0 + + libpython2.4.so.1.0`convertsimple, total bytes = 210 + value ------------- Distribution ------------- count + 16 | 0 + 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5 + 64 | 0 + + libc.so.1`strdup, total bytes = 451 + value ------------- Distribution ------------- count + 1 | 0 + 2 |@@@ 1 + 4 |@@@ 1 + 8 | 0 + 16 |@@@@@@@@@@@@@@@@@@@@ 8 + 32 |@@@@@@@@@@@@@@@ 6 + 64 | 0 + + libpython2.4.so.1.0`PyList_New, total bytes = 528 + value ------------- Distribution ------------- count + 2 | 0 + 4 |@@@@@@@@@@@@@@@@@@ 22 + 8 |@@@@@@@@@@@@@@@@@ 21 + 16 |@@@@@ 6 + 32 | 0 + 64 | 0 + 128 |@ 1 + 256 | 0 + + libpython2.4.so.1.0`PyTokenizer_FromFile, total bytes = 1024 + value ------------- Distribution ------------- count + 512 | 0 + 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 + 2048 | 0 + + libpython2.4.so.1.0`_PyExc_Init, total bytes = 1058 + value ------------- Distribution ------------- count + 8 | 0 + 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 40 + 32 |@@ 2 + 64 | 0 + + libpython2.4.so.1.0`tok_new, total bytes = 1832 + value ------------- Distribution ------------- count + 256 | 0 + 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2 + 1024 | 0 + + libpython2.4.so.1.0`fill_free_list, total bytes = 1976 + value ------------- Distribution ------------- count + 256 | 0 + 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2 + 1024 | 0 + + libpython2.4.so.1.0`PyParser_New, total bytes = 12024 + value ------------- Distribution ------------- count + 2048 | 0 + 4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2 + 8192 | 0 + + libpython2.4.so.1.0`PyObject_Malloc, total bytes = 35152 + value ------------- Distribution ------------- count + 128 | 0 + 256 |@@@@@@@@@@@@@@@@@@@ 20 + 512 |@@@@@@@ 7 + 1024 |@@@@@@@@@@ 11 + 2048 |@@@@ 4 + 4096 | 0 + + libpython2.4.so.1.0`PyMem_Malloc, total bytes = 50683 + value ------------- Distribution ------------- count + 4 | 0 + 8 |@@@ 2 + 16 |@@@@@@@ 4 + 32 |@@ 1 + 64 |@@@@@@@@@@@@@ 8 + 128 |@@@@@ 3 + 256 | 0 + 512 | 0 + 1024 | 0 + 2048 | 0 + 4096 | 0 + 8192 |@@@@@@@@@@ 6 + 16384 | 0 + + libc.so.1`_findbuf, total bytes = 51800 + value ------------- Distribution ------------- count + 256 | 0 + 512 |@@@@@@@@@@@@@@@ 4 + 1024 |@@@@ 1 + 2048 | 0 + 4096 |@@@@@@@ 2 + 8192 |@@@@@@@@@@@@@@@ 4 + 16384 | 0 + + libpython2.4.so.1.0`dictresize, total bytes = 178752 + value ------------- Distribution ------------- count + 64 | 0 + 128 |@ 1 + 256 |@@@@@@@@@@@@@@@@@@@@@ 29 + 512 | 0 + 1024 |@@@@@@@@@@@@@@ 19 + 2048 |@ 1 + 4096 |@ 2 + 8192 | 0 + 16384 |@ 1 + 32768 | 0 + 65536 |@ 1 + 131072 | 0 + + libpython2.4.so.1.0`new_arena, total bytes = 262208 + value ------------- Distribution ------------- count + 32 | 0 + 64 |@@@@@@@@@@@@@@@@@@@@ 1 + 128 | 0 + 256 | 0 + 512 | 0 + 1024 | 0 + 2048 | 0 + 4096 | 0 + 8192 | 0 + 16384 | 0 + 32768 | 0 + 65536 | 0 + 131072 | 0 + 262144 |@@@@@@@@@@@@@@@@@@@@ 1 + 524288 | 0 + + +Python malloc byte distributions by Python file and function, + + site.py, addsitepackages, bytes total = 4 + value ------------- Distribution ------------- count + 2 | 0 + 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 + 8 | 0 + + site.py, abs__file__, bytes total = 60 + value ------------- Distribution ------------- count + 16 | 0 + 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 + 64 | 0 + + posixpath.py, exists, bytes total = 83 + value ------------- Distribution ------------- count + 16 | 0 + 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2 + 64 | 0 + + stat.py, S_ISDIR, bytes total = 364 + value ------------- Distribution ------------- count + 128 | 0 + 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 + 512 | 0 + + site.py, _init_pathinfo, bytes total = 380 + value ------------- Distribution ------------- count + 128 | 0 + 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 + 512 | 0 + + UserDict.py, DictMixin, bytes total = 384 + value ------------- Distribution ------------- count + 128 | 0 + 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 + 512 | 0 + + codecs.py, StreamReader, bytes total = 384 + value ------------- Distribution ------------- count + 128 | 0 + 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 + 512 | 0 + + codecs.py, StreamReaderWriter, bytes total = 384 + value ------------- Distribution ------------- count + 128 | 0 + 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 + 512 | 0 + + codecs.py, StreamRecoder, bytes total = 384 + value ------------- Distribution ------------- count + 128 | 0 + 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 + 512 | 0 + + codecs.py, StreamWriter, bytes total = 384 + value ------------- Distribution ------------- count + 128 | 0 + 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 + 512 | 0 + + os.py, _Environ, bytes total = 384 + value ------------- Distribution ------------- count + 128 | 0 + 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 + 512 | 0 + + site.py, _Printer, bytes total = 384 + value ------------- Distribution ------------- count + 128 | 0 + 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 + 512 | 0 + + site.py, addsitedir, bytes total = 388 + value ------------- Distribution ------------- count + 128 | 0 + 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 + 512 | 0 + + linecache.py, ?, bytes total = 396 + value ------------- Distribution ------------- count + 4 | 0 + 8 |@@@@@@@@@@@@@@@@@@@@ 1 + 16 | 0 + 32 | 0 + 64 | 0 + 128 | 0 + 256 |@@@@@@@@@@@@@@@@@@@@ 1 + 512 | 0 + + posixpath.py, isdir, bytes total = 608 + value ------------- Distribution ------------- count + 1 | 0 + 2 |@@@@@@@ 2 + 4 | 0 + 8 | 0 + 16 |@@@@@@@@@@@@@@@@@@@@@@@ 7 + 32 |@@@@@@@ 2 + 64 | 0 + 128 | 0 + 256 |@@@ 1 + 512 | 0 + + os.py, _get_exports_list, bytes total = 612 + value ------------- Distribution ------------- count + 256 | 0 + 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 + 1024 | 0 + + posixpath.py, abspath, bytes total = 728 + value ------------- Distribution ------------- count + 128 | 0 + 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2 + 512 | 0 + + site.py, execsitecustomize, bytes total = 790 + value ------------- Distribution ------------- count + 16 | 0 + 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9 + 64 | 0 + 128 | 0 + 256 |@@@@ 1 + 512 | 0 + + UserDict.py, UserDict, bytes total = 1920 + value ------------- Distribution ------------- count + 128 | 0 + 256 |@@@@@@@@@@@@@@@@@@@@ 1 + 512 | 0 + 1024 |@@@@@@@@@@@@@@@@@@@@ 1 + 2048 | 0 + + stat.py, ?, bytes total = 1920 + value ------------- Distribution ------------- count + 128 | 0 + 256 |@@@@@@@@@@@@@@@@@@@@ 1 + 512 | 0 + 1024 |@@@@@@@@@@@@@@@@@@@@ 1 + 2048 | 0 + + types.py, ?, bytes total = 2680 + value ------------- Distribution ------------- count + 2 | 0 + 4 |@@@@@@ 1 + 8 |@@@@@@@@@@@ 2 + 16 | 0 + 32 | 0 + 64 | 0 + 128 | 0 + 256 |@@@@@@@@@@@@@@@@@ 3 + 512 | 0 + 1024 |@@@@@@ 1 + 2048 | 0 + + posixpath.py, ?, bytes total = 3306 + value ------------- Distribution ------------- count + 8 | 0 + 16 |@@@@@@@@@@@@@@@@ 2 + 32 | 0 + 64 | 0 + 128 | 0 + 256 |@@@@@@@@@@@@@@@@ 2 + 512 | 0 + 1024 | 0 + 2048 |@@@@@@@@ 1 + 4096 | 0 + + copy_reg.py, ?, bytes total = 3547 + value ------------- Distribution ------------- count + 8 | 0 + 16 |@@@@@@@@@@@@@@@@ 2 + 32 | 0 + 64 | 0 + 128 | 0 + 256 |@@@@@@@@ 1 + 512 |@@@@@@@@ 1 + 1024 | 0 + 2048 |@@@@@@@@ 1 + 4096 | 0 + + warnings.py, ?, bytes total = 3924 + value ------------- Distribution ------------- count + 8 | 0 + 16 |@@@@@@@@ 1 + 32 |@@@@@@@@ 1 + 64 | 0 + 128 | 0 + 256 |@@@@@@@@@@@@@@@@ 2 + 512 | 0 + 1024 | 0 + 2048 |@@@@@@@@ 1 + 4096 | 0 + + func_abc.py, func_a, bytes total = 5100 + value ------------- Distribution ------------- count + 256 | 0 + 512 |@@@@@@@@@@@@@@@@@@@@ 1 + 1024 | 0 + 2048 | 0 + 4096 |@@@@@@@@@@@@@@@@@@@@ 1 + 8192 | 0 + + codecs.py, ?, bytes total = 5612 + value ------------- Distribution ------------- count + 32 | 0 + 64 |@@@@@@ 1 + 128 |@@@@@@ 1 + 256 |@@@@@@@@@@@ 2 + 512 | 0 + 1024 |@@@@@@@@@@@@@@@@@ 3 + 2048 | 0 + + aliases.py, ?, bytes total = 8064 + value ------------- Distribution ------------- count + 128 | 0 + 256 |@@@@@@@@@@@@@ 1 + 512 | 0 + 1024 |@@@@@@@@@@@@@ 1 + 2048 | 0 + 4096 |@@@@@@@@@@@@@ 1 + 8192 | 0 + + func_abc.py, ?, bytes total = 16105 + value ------------- Distribution ------------- count + 2 | 0 + 4 |@@ 1 + 8 |@@@@@ 2 + 16 |@@@@@@@@@ 4 + 32 |@@@@@ 2 + 64 | 0 + 128 |@@ 1 + 256 |@@@@@@@ 3 + 512 |@@ 1 + 1024 |@@@@@ 2 + 2048 | 0 + 4096 | 0 + 8192 |@@ 1 + 16384 | 0 + + os.py, ?, bytes total = 58957 + value ------------- Distribution ------------- count + 2 | 0 + 4 |@@ 3 + 8 |@@@@@ 6 + 16 |@ 1 + 32 |@@ 2 + 64 | 0 + 128 |@ 1 + 256 |@@@@@@@@@@@@@@@@@@ 23 + 512 |@@ 3 + 1024 |@@@@@ 7 + 2048 | 0 + 4096 |@@@ 4 + 8192 |@ 1 + 16384 | 0 + + site.py, ?, bytes total = 62589 + value ------------- Distribution ------------- count + 8 | 0 + 16 |@@@ 2 + 32 | 0 + 64 | 0 + 128 | 0 + 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 20 + 512 |@ 1 + 1024 |@@@ 2 + 2048 |@ 1 + 4096 | 0 + 8192 | 0 + 16384 |@@@ 2 + 32768 | 0 + + __init__.py, ?, bytes total = 62593 + value ------------- Distribution ------------- count + 0 | 0 + 1 |@@ 1 + 2 | 0 + 4 | 0 + 8 | 0 + 16 |@@@ 2 + 32 |@@ 1 + 64 | 0 + 128 | 0 + 256 |@@@@@@@@@@@ 7 + 512 |@@@@@@@@@@@@@@@@ 10 + 1024 |@@@ 2 + 2048 | 0 + 4096 | 0 + 8192 | 0 + 16384 |@@@ 2 + 32768 | 0 + + posixpath.py, join, bytes total = 262144 + value ------------- Distribution ------------- count + 131072 | 0 + 262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 + 524288 | 0 + + os.py, _exists, bytes total = 362768 + value ------------- Distribution ------------- count + 2 | 0 + 4 |@ 10 + 8 |@ 10 + 16 |@@ 20 + 32 | 0 + 64 | 0 + 128 | 0 + 256 |@ 7 + 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 447 + 1024 |@@ 20 + 2048 | 0 + 4096 |@ 10 + 8192 | 0 + + +The results are divided into two sections. If a malloc() occurred while in a +Python function, then that function is identified as responsible; and the +results will appear in the second section - Python malloc byte distributions +by Python file and function. + +Otherwise the caller of malloc() is identified as responsible - which will be +a function from the Python engine, and these are noted in the first section - +Python malloc byte distributions by engine caller. |