【问题标题】:In Python, what is the best way to determine how long each line of code takes to execute? [duplicate]在 Python 中,确定每行代码执行多长时间的最佳方法是什么? [复制]
【发布时间】:2013-02-24 16:48:13
【问题描述】:

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

【问题讨论】:

标签: python performance


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    python -m cProfile nameofscriptfile.py
    

    【讨论】:

      【解决方案3】:
      import timeit
      
      timeit.timeit("5+3")
      

      【讨论】:

        【解决方案4】:

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

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

        第 2 步。获取一堆随机时间堆栈样本,as in this example。 如果运行时间很短,您可以多次运行。

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

        【讨论】:

          猜你喜欢
          • 2011-01-05
          • 2020-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-02-10
          相关资源
          最近更新 更多