2

对于任何特定的代码,有没有一种方法可以轻松地分解每行执行多长时间?

4

4 回答 4

3

Python 代码不会按原样执行,您输入的程序会被编译成经过优化的中间格式。因此,同一条线很可能会根据周围的线而花费不同的时间。此外,Python 对其数据有复杂的操作,操作所花费的时间将取决于处理的确切值。

于 2013-03-09T01:04:32.243 回答
2

在 shell 中,您可以将 cProfile 模块作为脚本运行:

python -m cProfile nameofscriptfile.py
于 2013-03-09T01:04:05.573 回答
2
import timeit

timeit.timeit("5+3")
于 2013-03-09T01:04:26.757 回答
2

这是一种快速而肮脏的方法。

步骤 1. 运行它并以秒为单位获得端到端的总体时间。如果它真的很快,请在它周围包裹一个临时的外环,使其至少需要几秒钟。

步骤 2. 获取一堆随机时间堆栈样本,如本例所示。如果运行时间很短,您可以在多次运行中执行此操作。

您感兴趣的任何行都会出现在部分样本上。例如,如果它出现在 10 个样本中的 3 个上,这意味着在总时间的 30%(大约)期间,该语句正在执行。

于 2013-03-09T02:34:46.443 回答