summaryrefslogtreecommitdiffstats
path: root/Examples/py_malloc_example.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/py_malloc_example.txt')
-rw-r--r--Examples/py_malloc_example.txt508
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.
OpenPOWER on IntegriCloud