【问题标题】:How long does my Python application take to run?我的 Python 应用程序需要多长时间才能运行?
【发布时间】:2012-09-08 18:27:08
【问题描述】:

基本上,我希望能够输出应用程序运行所经过的时间。我想我需要使用某种 timeit 函数,但我不确定是哪一个。我正在寻找类似以下的内容...

START MY TIMER
code for application
more code
more code
etc
STOP MY TIMER

OUTPUT ELAPSED TIME 在定时器的启动和停止之间执行上述代码。想法?

【问题讨论】:

    标签: python timer


    【解决方案1】:

    最简单的方法是把:

    import time
    start_time = time.time()
    

    一开始

    print "My program took", time.time() - start_time, "to run"
    

    在最后。

    【讨论】:

      【解决方案2】:

      要在不同平台上获得最佳效果:

      from timeit import default_timer as timer
      
      # START MY TIMER
      start = timer()
      code for application
      more code
      more code
      etc
      # STOP MY TIMER
      elapsed_time = timer() - start # in seconds
      

      timer() 在 Python 3.3 中是 time.perf_counter(),在 Windows/其他平台上的旧版本中是 time.clock()/time.time()。

      【讨论】:

        【解决方案3】:

        如果您运行的是 Mac OS X 或 Linux,只需使用 time 实用程序:

        $ time python script.py
        real    0m0.043s
        user    0m0.027s
        sys     0m0.013s
        

        如果没有,请使用time 模块:

        import time
        
        start_time = time.time()
        
        # ...
        
        print time.time() - start_time, 's'
        

        【讨论】:

          【解决方案4】:

          你可以使用系统命令time:

          foo@foo:~# time python test.py
          hello world!
          
          real    0m0.015s
          user    0m0.008s
          sys     0m0.007s
          

          【讨论】:

          • 我喜欢这个,除了这将包括任何你不想测试的导入和初始化的“开销”,在计时一个 sn-p 的情况下。
          【解决方案5】:

          在程序开始时取系统当前时间,最后再取程序结束时间,最后减去两次。

          以下代码描述了我们如何执行上述操作:

          import time
          start = time.time()
          

          示例代码从这里开始

          cnt = 1
          for fun in range(10**11):
              if (fun % 10**9 == 0):
                  print(cnt, fun)
                  cnt += 1
          

          示例代码到此结束

          end = time.time()
          print('Time taken for fun program: ', end - start)
          

          希望这永远清楚。

          【讨论】:

            【解决方案6】:

            你不能在开始和结束时获取当前系统时间,然后从最终时间中减去开始时间吗?

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2021-03-03
              • 1970-01-01
              • 2013-10-11
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-08-28
              相关资源
              最近更新 更多