在Python中,如何有效测量每行代码的执行时间?

3 投票
4 回答
3763 浏览
提问于 2025-04-17 18:28

有没有什么简单的方法可以查看某段代码每一行执行花了多长时间?

4 个回答

2

这里有个简单粗暴的方法。

第一步:运行程序,记录下从头到尾的总时间,单位是秒。如果程序运行得很快,可以在外面加一个临时的循环,让它至少运行几秒钟。

第二步:获取一些随机时间的堆栈样本,就像这个例子一样。如果运行时间很短,可以多次运行来收集样本。

你感兴趣的任何一行代码在某些样本中都会出现。如果,比如说,它在10个样本中出现了3次,那就意味着在大约30%的总时间里,这行代码是在执行的。

3

在命令行中,你可以把cProfile模块当作一个脚本来运行:

python -m cProfile nameofscriptfile.py
3

Python代码并不是直接执行的,你输入的程序会先被转换成一种中间格式,这种格式经过优化后再执行。所以同样的一行代码,根据周围的代码不同,执行的时间可能会有很大的差别。此外,Python对数据的操作比较复杂,某个操作所花的时间还会根据具体处理的数值而有所不同。

撰写回答