这个问题在这里已经有了答案:
How do I profile a Python script?
(31 个回答)
7年前关闭。
我刚刚用python完成了我的第一个程序,我已经在一个模块中编写了我的所有函数,我只是通过将输入文件作为参数从命令行执行它并且它工作。但是当我给一个大数据集时,我的程序连续运行了一段时间。现在我的下一步是找出在我的模块中哪个函数花费了更多时间。我可以得到整个程序所花费的时间,但我需要分别为每个功能。
我试图理解 python 中的 timeit 和 profile 模块,但根据我的理解,它们给出了特定函数所花费的时间。有没有办法知道我模块中每个函数所花费的时间作为统计数据(一次全部)?
提前致谢。
最佳答案
在终端,运行
python -m profile -s time file.py
或者
python -m cProfile -s time file.py
第二个可以更快,而且永远不会更糟。
这将给出如下内容:
Ordered by: internal time
ncalls tottime percall cumtime percall filename:lineno(function)
39 0.132 0.003 0.139 0.004 :0(load_dynamic)
239 0.097 0.000 0.097 0.000 :0(loads)
541/1 0.083 0.000 3.556 3.556 :0(exec)
30 0.082 0.003 0.082 0.003 :0(statusBar)
... etc ...
左侧将包含您的功能。
关于每个函数的python时间测量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25958562/