Python模块操作:time—Clock Time(一)

简介: Python模块操作:time—Clock Time(一)

Python模块操作:time—Clock Time
目的:操作时钟的函数
时间模块提供几种不同类型时钟的访问途径,每种都用于不同的目的。标准系统调用像time()报告系统"挂钟"时间。monotonic()时钟函数被用来测量在长期进程中经过的时间,因为它确保时间永不往回走,即使系统时间被改变。对于性能测试,perf_counter()函数提供获取具有最高解析度的时钟访问,使短时间测量更精确。CPU时间通过clock()函数可以获取,并且process_time()函数返回处理器时间和系统时间的组合。

注意
这些实现公开了操作时间和日期的C库函数。由于它们绑定到底层C实现,因此一些细节(例如时间纪元的开始和支持的最大日期值)是限于特定的平台。可以参照库文档了解全部的细节。

比较的时钟
实现的细节根据平台而变化。使用get_clock_info()访问有关当前实现的基本信息,包括时钟的分辨率。

import textwrap
import time

available_clocks = [
    ('monotonic', time.monotonic),
    ('perf_counter', time.perf_counter),
    ('process_time', time.process_time),
    ('time', time.time),
]

for clock_name, func in available_clocks:
    print(textwrap.dedent('''\
    {
   name}:
        adjustable : {
   info.adjustable}
        implementation: {
   info.implementation}
        monotonic: {
   info.monotonic}
        resolution: {
   info.resolution}
        current: {
   current}
        ''').format(
        name=clock_name,
        info=time.get_clock_info(clock_name),
        current=func()
    ))

以下是macOS系统的输出,展示了monotonic和perf_counter时钟的执行是使用相同的系统调用。

monotonic:
    adjustable : False
    implementation: mach_absolute_time()
    monotonic: True
    resolution: 1e-09
    current: 0.94656131

perf_counter:
    adjustable : False
    implementation: mach_absolute_time()
    monotonic: True
    resolution: 1e-09
    current: 0.946618741

process_time:
    adjustable : False
    implementation: clock_gettime(CLOCK_PROCESS_CPUTIME_ID)
    monotonic: True
    resolution: 1.0000000000000002e-06
    current: 0.824873

time:
    adjustable : True
    implementation: clock_gettime(CLOCK_REALTIME)
    monotonic: False
    resolution: 1.0000000000000002e-06
    current: 1671860901.9184608


Process finished with exit code 0

win10系统的输出结果如下图:

image.png

挂钟时间
时间模块的一个核心函数就是time(),这个函数返回纪元开始浮点类型的秒数值。

import time
print('the time is: ',  time.time())

纪元是时间测量的起始,对于Unix系统是0:00, 1970年1月1日。尽管值总是浮点型的,实际的精度还有赖于平台。

macOS系统的输出结果如下:

/usr/local/bin/python3.9 /Users/bruce_liu/wall_clock_time.py
the time is:  1671863148.7370439

win10系统的输出结果如下图:

image.png

当日期用于存储和比较的时候,浮点表示是有用的,但是在生成人类可读的表示来说,用处不大。

对于记录或者打印时间ctime()可能更有用。

import time
print('The time is    :', time.ctime())
later = time.time() + 15
print('15 secs from now: ', time.ctime(later))

第2个print()函数在这个例子里的调用表明如何使用ctime()格式化一个时间值而不是当前时间。

macOS系统运行结果如下:

The time is    : Sat Dec 24 14:52:24 2022
15 secs from now:  Sat Dec 24 14:52:39 2022

Process finished with exit code 0

单调的时钟
因为time()函数查看系统时间,并且系统时钟可以由用户或者系统服务修改,以便在多台计算机上同步时钟,重复地调用time()函数可能产生向前和向后的值。当试图测量时间段或者用那些时间计算的时候,这可能导致不期望的行为。为了避免那些情形,要通过使用monotonic()函数,这个函数返回值总是向前的。

import time

start = time.monotonic()
time.sleep(0.1)
end = time.monotonic()
print('start :  {:>9.2f}'.format(start))
print('end   :  {:>9.2f}'.format(end))
print('span  :  {:>9.2f}'.format(end - start))

macOS系统运行结果如下:

start :       0.45
end   :       0.56
span  :       0.10

win10系统运行结果如下图:

image.png

接下文 Python模块操作:time—Clock Time(二)https://developer.aliyun.com/article/1618982

相关文章
|
6天前
|
Python
在Python中,可以使用内置的`re`模块来处理正则表达式
在Python中,可以使用内置的`re`模块来处理正则表达式
19 5
|
16天前
|
Java 程序员 开发者
Python的gc模块
Python的gc模块
|
19天前
|
数据采集 Web App开发 JavaScript
python-selenium模块详解!!!
Selenium 是一个强大的自动化测试工具,支持 Python 调用浏览器进行网页抓取。本文介绍了 Selenium 的安装、基本使用、元素定位、高级操作等内容。主要内容包括:发送请求、加载网页、元素定位、处理 Cookie、无头浏览器设置、页面等待、窗口和 iframe 切换等。通过示例代码帮助读者快速掌握 Selenium 的核心功能。
62 5
|
18天前
|
Python
SciPy 教程 之 SciPy 模块列表 16
SciPy教程之SciPy模块列表16 - 单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了力学单位的使用,如牛顿、磅力和千克力等。
15 0
|
19天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy 教程之 SciPy 模块列表 15 - 功率单位。常量模块包含多种单位,如公制、质量、时间等。功率单位中,1 瓦特定义为 1 焦耳/秒,表示每秒转换或耗散的能量速率。示例代码展示了如何使用 `constants` 模块获取马力值(745.6998715822701)。
15 0
|
19天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy教程之SciPy模块列表15:单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。功率单位以瓦特(W)表示,1W=1J/s。示例代码展示了如何使用`constants`模块获取马力(hp)的值,结果为745.6998715822701。
16 0
|
20天前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy 教程之 SciPy 模块列表 13 - 单位类型。常量模块包含多种单位:公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例:`constants.zero_Celsius` 返回 273.15 开尔文,`constants.degree_Fahrenheit` 返回 0.5555555555555556。
14 0
|
1月前
|
开发者 Python
Python 时间处理与时区转换:深入探究 datetime、time 模块与 pytz 库的功能与应用
Python 时间处理与时区转换:深入探究 datetime、time 模块与 pytz 库的功能与应用
13 0
|
2月前
|
Python
30天拿下Python之time模块
30天拿下Python之time模块
|
6月前
|
Linux Python Windows
Python中time和datetime模块详解
Python中time和datetime模块详解