python time.time() python 2 对 3 的差异

python time.time() differences in python 2 vs 3

我想知道为什么 python 2.7 在 运行 time.time() 中使用 gettimeofday() 但在 python 3.4 中却没有?

当运行 strace 出现时可能正在查询/etc/localtime

Python 3 将在编译时检测到您的系统支持此功能时使用gettimeofday()。但是,在 POSIX 系统上,它只会在 clock_gettime(CLOCK_REALTIME) is not available instead; according to the POSIX 2008 standard 时使用后者,因为 gettimeofday() 被认为已过时。

在运行时,您可以使用 time.get_clock_info() function 查询 Python 认为您的系统在编译时可以支持的内容,其中 returns 一个带有 implementation 字段:

implementation: The name of the underlying C function used to get the clock value

在我的 OSX 10.11 系统上,'time' 时钟产生 gettimeofday():

>>> time.get_clock_info('time').implementation
'gettimeofday()'

您可以通读 pygettimeofday() C implementation 以查看可能使用的实现; on Windows GetSystemTimeAsFileTime() 用于示例。