Never heard of Python Call Graph, will check it out.
Having some background knowledge of how Python implements some of its types can also be useful when debugging performance issues. For instance, knowing that the Python list type is implemented using a variable-length array of object references (rather than a linked-list) will help one figure out why inserting in the front or middle of a Python list is slow.
https://docs.python.org/2/faq/design.html#how-are-lists-impl...