那可能不会直接回答您的问题,但肯定会有所帮助。如果将事件探查器与选项– sort累计一起使用,它将按累计时间对功能进行排序。这不仅有助于检测繁重的功能,而且有助于检测调用它们的功能。
python -m cProfile --sort cumulative myScript.py
import inspect
print inspect.getframeinfo(inspect.currentframe().f_back)[2]
您可以根据需要添加任意数量的f_back,以防需要呼叫者,呼叫者等。如果要计算频繁呼叫,可以执行以下操作:
record = {}
caller = inspect.getframeinfo(inspect.currentframe().f_back)[2]
record[caller] = record.get(caller, 0) + 1
然后按频率顺序打印它们:
print sorted(record.items(), key=lambda a: a[1])