Unix 타임스탬프 증분입니까?

Unix 타임스탬프 증분입니까?

센서에서 데이터를 수집하는 간단한 Python 프로그램이 있습니다. 그런 다음 프로그램은 REST POST 요청을 통해 시스템 타임스탬프와 함께 데이터를 원격 서버로 보냅니다.

POST 요청이 실패하면 데이터는 타임스탬프와 함께 CSV 파일에 저장됩니다. 인터넷 연결이 다시 가능해지면 CSV 파일의 데이터가 원격 서버로 전송됩니다.

원격 서버에는 수집된 데이터를 기반으로 차트를 생성하는 간단한 PHP 애플리케이션이 있습니다.

내 질문: Unix 타임스탬프는 증분적이고 고유합니까? 수집된 데이터의 순서를 보려면 타임스탬프를 오름차순으로 정렬하는 것이 안전합니까?

답변1

타임스탬프의 증분은 보장되지 않습니다. 시스템 시간을 얻는 일반적인 방법은 다음과 같습니다.gettimeofday이는 전혀 보장하지 않습니다.

실제로 gettimeofday시스템 관리자나 구성 오류로 인해 시스템 시계가 변경되지 않는 한 이는 단조롭습니다. gettimeofday최대 마이크로초 해상도. 호출 사이에 1μs 이상이 있으면 값이 업데이트된다는 보장은 없지만 gettimeofday호출 사이의 간격이 길어질수록 값이 변경될 가능성이 높아집니다.

일부 시스템은 호출하여 읽는 단조 시계를 지원합니다.clock_gettime시계 ID 포함 CLOCK_MONOTONIC. Python은 다음을 통해 이 시간에 대한 액세스를 제공합니다.time.CLOCK_MONOTONIC버전 3.3부터 시작됩니다. 시계는 다시 시작하는 사이에만 단조롭고, 두 속성이 모두 발생할 가능성이 높더라도 연속적인 호출이 서로 다른 값을 반환한다는 보장은 없습니다.

일부 필드가 증분임을 절대적으로 보장하려면 별도의 필드에 카운터를 유지하십시오.

관련 정보