我如何获得执行Python程序的时间?

こ雲淡風輕ζ 提交于 2019-12-18 12:49:10

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

我在Python中有一个命令行程序,需要花一些时间才能完成。 我想知道完成跑步所需的确切时间。

我已经看过timeit模块,但它似乎仅适用于一小段代码。 我想安排整个节目的时间。


#1楼

我真的很喜欢Paul McGuire的答案 ,但是我使用Python3。所以对于那些感兴趣的人:这是他的答案的修改,可以在* nix上的Python 3上使用(我想在Windows下,应该使用clock()代替time() ):

#python3
import atexit
from time import time, strftime, localtime
from datetime import timedelta

def secondsToStr(elapsed=None):
    if elapsed is None:
        return strftime("%Y-%m-%d %H:%M:%S", localtime())
    else:
        return str(timedelta(seconds=elapsed))

def log(s, elapsed=None):
    line = "="*40
    print(line)
    print(secondsToStr(), '-', s)
    if elapsed:
        print("Elapsed time:", elapsed)
    print(line)
    print()

def endlog():
    end = time()
    elapsed = end-start
    log("End Program", secondsToStr(elapsed))

start = time()
atexit.register(endlog)
log("Start Program")

如果您认为此方法有用,则仍应投票赞成他的答案,而不是像他所做的大部分工作一样;)。


#2楼

在Linux或Unix中:

time python yourprogram.py

在Windows中,请参见以下堆栈溢出问题: 如何在Windows命令行上测量命令的执行时间?


#3楼

Python中最简单的方法:

import time
start_time = time.time()
main()
print("--- %s seconds ---" % (time.time() - start_time))

假设您的程序至少需要十分之一秒才能运行。

印刷品:

--- 0.764891862869 seconds ---

#4楼

rogeriopvl解决方案效果很好,但是如果您需要更多特定信息,则可以使用Python内置的探查器。 检查此页面:

http://docs.python.org/library/profile.html

探查器会告诉您很多有用的信息,例如每个功能所花费的时间


#5楼

import time

start_time = time.clock()
main()
print time.clock() - start_time, "seconds"

time.clock()返回处理器时间,这使我们只能计算该进程使用的时间(无论如何在Unix上)。 该文档说“无论如何,这是用于基准化Python或计时算法的功能”

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!