鉴于cProfile在任意python程序上的输出,可以重建原始源代码吗?

时间:2016-12-16 07:41:57

标签: python profiling cprofile

如果我做的话

python -m cProfile -o profile.prof myprogram.py

重建源代码是否可以访问profile.prof

1 个答案:

答案 0 :(得分:0)

所有.prof文件包含的marshal serialisation是您在不使用-o时显示的相同统计信息(从而打印统计信息)。

它基本上是一个键入功能'label'的字典,每个函数调用统计数据,聚合。功能标签定义为:

def label(code):
    if isinstance(code, str):
        return ('~', 0, code)    # built-in functions ('~' sorts at the end)
    else:
        return (code.co_filename, code.co_firstlineno, code.co_name)

因此只记录文件名,行号和函数名,没有别的。你无法从中重建一个完整的程序。