如何在Cython中测量高达毫秒的时间?

时间:2017-02-17 17:38:07

标签: python c time cython

我已阅读this question,但我希望获得比一秒更好的计时精度:这是否可以通过libc的某些功能实现?

这是在with nogil内部使用,所以当然不允许使用Python ......

2 个答案:

答案 0 :(得分:4)

您可以使用POSIX clock_gettime()

from posix.time cimport clock_gettime, timespec, CLOCK_REALTIME

cdef timespec ts
cdef double current
clock_gettime(CLOCK_REALTIME, &ts)
current = ts.tv_sec + (ts.tv_nsec / 1000000000.)

此代码段在current内存储自纪元以来的秒数,精度高达纳秒(取决于您的系统)。

您也可以使用gettimeofday(),但现已弃用:

  

POSIX.1-2008将gettimeofday()标记为已过时,建议使用clock_gettime(2)。

答案 1 :(得分:-3)

为什么不使用日期时间?例如,datetime.datetime.now()将为您提供当前时间值,包括毫秒。