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

时间:2016-07-22 19:09:58

标签: python python-2.7 python-3.x python-internals gettimeofday

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

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

1 个答案:

答案 0 :(得分:3)

当您的系统在编译时检测到支持此 时,Python 3将使用gettimeofday()。但是,在POSIX系统上,如果clock_gettime(CLOCK_REALTIME)不可用,它将仅使用它;根据{{​​3}},后者是首选,因为gettimeofday()被认为是过时的。

在运行时,您可以使用POSIX 2008 standard查询系统在编译时可以支持的Python,它会返回namedtupleimplementation字段的实例:

  

实现:用于获取时钟值的基础C函数的名称

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

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

您可以阅读time.get_clock_info() function以了解可能会使用哪些实施方案;以Windows GetSystemTimeAsFileTime()为例。