菜单栏“run"选项中Profile <当期脚本>
,则运行程序并生成类似与MATLAB分析文件一样的时间分析表,可以查看各个函数的运行时间,同时生成Call Graph图表。
点击Call Graph图表中的方框,可以直接调到对应的函数位置
要使用pycallgraph,必须是运行模式,不能是调试模式
# generate graph
from pycallgraph import PyCallGraph
from pycallgraph.output import GraphvizOutput
from pycallgraph import Config
from pycallgraph import GlobbingFilter
if __name__ == "__main__":
if False: #如果绘制关系图
config = Config()
# 关系图中包括(include)哪些函数名。
# 如果是某一类的函数,例如类gobang,则可以直接写'gobang.*',表示以gobang.开头的所有函数。(利用正则表达式)。
# config.trace_filter = GlobbingFilter(
# include=['main',
# 'run',
# 'frame_callback',
# 'create_detections',
# 'gather_sequence_info'
# ])
config.trace_filter=GlobbingFilter() #模式情况下绘制所有调用的函数
# 该段作用是关系图中不包括(exclude)哪些函数。(正则表达式规则)
# config.trace_filter = GlobbingFilter(exclude=[
# 'pycallgraph.*',
# '*.secret_function',
# 'FileFinder.*',
# 'ModuleLockManager.*',
# 'SourceFilLoader.*'
# ])
graphviz = GraphvizOutput()
graphviz.output_file = 'graph.png'
with PyCallGraph(output=graphviz, config=config):
main()
else:
main()