当前位置:  开发笔记 > 编程语言 > 正文

在Python中获取计时器滴答

如何解决《在Python中获取计时器滴答》经验,为你挑选了2个好方法。

我只想尝试一段代码.伪代码看起来像:

start = get_ticks()
do_long_code()
print "It took " + (get_ticks() - start) + " seconds."

这看起来如何用Python?

更具体地说,我如何得到午夜以来的滴答数(或者Python组织那个时间)?



1> tzot..:

time模块中,有两个定时功能:timeclock.time给你"墙"时间,如果这是你关心的.

但是,python 文档说clock应该用于基准测试.请注意,clock在不同的系统中行为不同:

在MS Windows上,它使用Win32函数QueryPerformanceCounter(),"分辨率通常优于微秒".它没有特殊含义,它只是一个数字(它会clock在您第一次调用过程中开始计算).

    # ms windows
    t0= time.clock()
    do_something()
    t= time.clock() - t0 # t is wall seconds elapsed (floating point)

在*nix上,clock报告CPU时间.现在,这是不同的,并且很可能是您想要的值,因为您的程序几乎不是唯一请求CPU时间的进程(即使您没有其他进程,内核时不时地使用CPU时间).因此,这个数字通常小于壁时间(即time.time() - t0),在对代码进行基准测试时更有意义:

    # linux
    t0= time.clock()
    do_something()
    t= time.clock() - t0 # t is CPU seconds elapsed (floating point)

除此之外,timeit模块还有一个Timer类,它应该使用最好的功能来进行基准测试.

¹除非线程妨碍...

²Python≥3.3:有time.perf_counter()time.process_time().perf_counter正在被timeit模块使用.



2> blackwing..:

你需要的是模块的time()功能time:

import time
start = time.time()
do_long_code()
print "it took", time.time() - start, "seconds."

您可以使用timeit模块获得更多选项.

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有