2011-03-06 1 views
5

얼랭 문서는 말한다 :왜 erlang : now()가 노드의 시간을 왜곡 할 수 있다고 specified 되었습니까?

얼랑 : 지금()
[...] 또한이 BIF에 대한 후속 호출이 계속 값을 증가 반환 보장된다. 따라서 now()의 반환 값을 사용하여 고유 한 타임 스탬프를 생성 할 수 있으며 빠른 머신에서 긴밀한 루프에서 호출되는 경우 노드 시간이 왜곡 될 수 있습니다. [...]

나는 조금 이상하다 (특히 세분화가 마이크로 초라고 생각한다). 왜 그것이 이렇게 specced 되었습니까?

답변

6

그런 다음 타임 스탬프 번호를 고유하게 생성하는 데 사용할 수 있기 때문에. os 모듈에는이를 수행하지 않는 변형이 있습니다.

+4

는 그래서 "노드의 시간이 왜곡 될 수있다"라고 할 때 정말 "() 왜곡 될 수있는 지금의 시간을"의미? – MatthewToday

+0

그건 내 이해입니다. – natevw

+0

예,이 소스 코드를 기반으로이 시스템 클럭 스큐가 발생했을 때 수정되지 않는 것을 알 수있다 필요로 할 때, 얼랑 VM의 내부 상태가 조금 왜곡됩니다 : http://code.google.com/p/ erl_time_sup.c? r = 88 # 662 (이 비뚤어 짐은 시스템 시계가 잡을 때까지 일시적입니다. 즉, 긴밀한 루프에서 비틀고 잠을 자면 결과가 나타납니다. 나중에 점검 할 때 정상으로 돌아갑니다.) – natevw

관련 문제