Mac和Windows中Pythons time.clock()的区别是什么?

Mac和Windows中Pythons time.clock()的区别是什么?,python,macos,time,Python,Macos,Time,我使用Python的时间来衡量Selenium进程的时间框架。我的剧本是这样的 start_time = time.clock() ... #ending with final_time = '{0:.2f}'.format(time.clock()-start_time) 当在windows操作系统上运行时,我会得到类似于55.22的结果,但如果在Mac上运行,它会返回类似于.14的结果,即使它几乎是在同一时间 知道Mac上发生了什么不同吗?实际上,我也将在Ubuntu上试用,看看它们的区别

我使用Python的时间来衡量Selenium进程的时间框架。我的剧本是这样的

start_time = time.clock()
...
#ending with
final_time = '{0:.2f}'.format(time.clock()-start_time)
当在windows操作系统上运行时,我会得到类似于
55.22
的结果,但如果在Mac上运行,它会返回类似于
.14
的结果,即使它几乎是在同一时间

知道Mac上发生了什么不同吗?实际上,我也将在Ubuntu上试用,看看它们的区别。

每,
时间。时钟在Unix(包括Mac OS X)和Windows之间是不同的:

在Unix上,以浮点数形式返回当前处理器时间 以秒表示。精确性,事实上就是定义 “处理器时间”的含义取决于C函数的含义 具有相同的名称,但在任何情况下,这都是要使用的函数 基准测试Python或计时算法

在Windows上,此函数返回自 根据 Win32函数
QueryPerformanceCounter()
。分辨率通常是 比一微秒好

如果需要跨平台的一致性,请考虑.< /P> 处理器时间和墙上时钟时间之间的差异解释如下-基本上,处理器时钟只有在进程工作时才会前进。

每,
时间。时钟
在Unix(包括Mac OS X)和Windows之间是不同的:

在Unix上,以浮点数形式返回当前处理器时间 以秒表示。精确性,事实上就是定义 “处理器时间”的含义取决于C函数的含义 具有相同的名称,但在任何情况下,这都是要使用的函数 基准测试Python或计时算法

在Windows上,此函数返回自 根据 Win32函数
QueryPerformanceCounter()
。分辨率通常是 比一微秒好

如果需要跨平台的一致性,请考虑.< /P>


处理器时间和挂钟时间之间的区别解释如下-基本上,处理器时钟只有在进程工作时才会前进。

标准库中的timeit模块使用
timeit。默认计时器
测量挂钟时间:

if sys.platform == "win32":
    # On Windows, the best timer is time.clock()
    default_timer = time.clock
else:
    # On most other platforms the best timer is time.time()
    default_timer = time.time
help(timeit)
说明:

因此,为了实现跨平台的一致性,您可以使用

import timeit
clock = timeit.default_timer

start_time = clock()
...
final_time = clock()

标准库中的timeit模块使用
timeit.default_timer
测量墙壁时间:

if sys.platform == "win32":
    # On Windows, the best timer is time.clock()
    default_timer = time.clock
else:
    # On most other platforms the best timer is time.time()
    default_timer = time.time
help(timeit)
说明:

因此,为了实现跨平台的一致性,您可以使用

import timeit
clock = timeit.default_timer

start_time = clock()
...
final_time = clock()

谢谢你,先看说明书总是个好主意,但那没那么有趣;-)谢谢你,先看说明书总是个好主意,但那没那么有趣;-)+1表示计时器。默认计时器()
。在Python 3.3+中,
timeit.default\u timer()
在所有平台上都是
time.perf\u counter()
。+1表示
timeit.default\u timer()
。在Python 3.3+中,所有平台上的
timeit.default\u timer()
都是
time.perf\u counter()