Python 让cProf只给出10个最耗时的任务,或按时间倒序排序

Python 让cProf只给出10个最耗时的任务,或按时间倒序排序,python,time,compilation,profiling,Python,Time,Compilation,Profiling,我正在终端上运行以下代码行,以获取程序的配置文件 python3 -m cProfile -s time main.py 然而,它打印的输出是巨大的。我只想知道10个最耗时的任务,或者按升序排序。我怎样才能告诉cprof呢?我在其他答案中找到了解决方案。解决方案是在要分析的脚本内部使用cProfile,而不是在命令行外部使用cProfile 我的脚本如下所示: def run_code_to_be_profiled(): pass if __name__ == "__main__"

我正在终端上运行以下代码行,以获取程序的配置文件

python3 -m cProfile -s time  main.py
然而,它打印的输出是巨大的。我只想知道10个最耗时的任务,或者按升序排序。我怎样才能告诉cprof呢?

我在其他答案中找到了解决方案。解决方案是在要分析的脚本内部使用cProfile,而不是在命令行外部使用cProfile

我的脚本如下所示:

def run_code_to_be_profiled():
    pass

if __name__ == "__main__":
    import cProfile

    pr = cProfile.Profile()
    pr.enable()

    run_code_to_be_profiled()

    pr.disable()
    pr.print_stats(sort='time')
我运行脚本并获得有用的输出。

试试看

python3-m cProfile-s cumtime main.py

这将根据累计时间按降序打印配置文件。我认为Mikhail是在说,只有使用内部解决方案才能调用Stats类。