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

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

在编写Python程序时,我们有时需要知道程序的运行时间,以便对程序进行优化。Python提供了多种方式来获得程序的运行时间。

更多Python文章,请阅读:Python 教程

time模块

time模块是Python标准库中用于处理时间相关操作的模块。其中time.time()函数可以返回一个自1970年1月1日午夜起的秒数,可以用来计算程序的运行时间。

示例代码:

import time

start = time.time()      # 获取开始时间

# 执行你的Python代码
for i in range(1000000):
    pass

end = time.time()        # 获取结束时间

print("程序运行时间:", end-start, "秒")

输出结果:

程序运行时间: 0.0369718074798584 秒

datetime模块

datetime模块用于操作日期和时间。可以用datetime.datetime.now()函数获取当前日期和时间,再通过计算来获得程序的运行时间。

示例代码:

import datetime

start = datetime.datetime.now()     # 获取开始时间

# 执行你的Python代码
for i in range(1000000):
    pass

end = datetime.datetime.now()       # 获取结束时间

print("程序运行时间:", (end-start).total_seconds(), "秒")

输出结果:

程序运行时间: 0.048455 秒

timeit模块

timeit模块是Python专门用于测试代码执行时间的模块,它可以在运行一个代码块多次后,返回这个代码块的平均执行时间。

示例代码:

import timeit

# 执行你的Python代码
def test():
    for i in range(1000000):
        pass

print("程序平均执行时间:", timeit.timeit(stmt=test, number=5), "秒")

输出结果:

程序平均执行时间: 0.18389538301135758 秒

timeit.timeit()函数中的number参数表示代码块执行的次数。

cProfile模块

cProfile模块是Python用于代码性能分析的模块,它能够收集程序各个函数的执行时间和调用次数等信息。

示例代码:

import cProfile
import re

def test():
    for i in range(1000):
        re.compile("foo|bar")

cProfile.run("test()")

输出结果:

         2004 function calls in 0.000 seconds

   Ordered by: standard name

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
    1000    0.000    0.000    0.000    0.000 re.py:191(compile)
       1    0.000    0.000    0.000    0.000 {built-in method builtins.exec}
       1    0.000    0.000    0.000    0.000 {built-in method builtins.print}
       1    0.000    0.000    0.000    0.000 {built-in method builtins.re.compile}
       1    0.000    0.000    0.000    0.000 {built-in method builtins.sum}

输出结果中的tottime列显示了每个函数的执行时间,单位是秒。

总结

Python提供了多种方式来获得程序的执行时间,其中time模块和datetime模块都是常用的方法,通过比较两者的执行时间可以看出time模块更加精确。timeit模块是专门用于性能测试的模块,而cProfile模块则可以帮助我们分析程序的性能瓶颈。不同的方法可根据需求灵活选择,以提高程序的性能。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程