2017-02-17 2 views
1

나는 this question을 읽었지만 두 번째보다 더 나은 타이밍 정밀도를 얻고 싶습니다 : libc의 일부 기능으로 가능합니까?Cython에서 최대 밀리 초까지 측정하는 방법은 무엇입니까?

물론 더 파이썬은 허용되지 않는다, 그래서 이것은, with nogil 내부에 사용하는 것입니다 ...

+0

Cython의 어느 부분에 있습니까? '.pyx' 또는'.c [pp]'? c : http://stackoverflow.com/questions/5833094/get-a-timestamp-in-c-in-microseconds. C++로 여러 가지 방법이 있습니다. 그러면 .pyx로 래퍼를 만들 수 있습니다. –

+0

.XxHuang in .pyx, 나는 심지어 .c (cython으로 생성 된 것을 제외하고) –

답변

-3

왜이 날짜를 사용 해달라고? 예를 들어 datetime.datetime.now()는 밀리 초를 포함하여 현재 시간 값을 제공합니다.

+0

이것은 파이썬이다. 나는 C로 무엇인가 찾고있다. (nogil 섹션과 함께 ...) –

2

당신은 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 마크 (2) 대신 위해 clock_gettime의 사용을 권장, 사용되지 않는 것으로) (은 gettimeofday.