대부분의 파일시스템은 파일들마다 생성시각, 최종변경시각, 최종접근시각을 항상 기록해 둔다.
그런데 이 시간들의 정밀도는 파일시스템별로 제각각이다. 위키백과를 뒤져서 정리해보았다.
- FAT는
- 최종변경시각은 2초
- 생성시각은 10밀리초
- 최종접근시각은 1일
- 삭제시각은 2초
- HFS+는 1초
- ext2,3도 1초
- exFAT는 10밀리초
- NTFS는 100나노초
- ext4는 1나노초
ext4의 등장 이후 1나노초 수준의 정밀도를 요구하는 목소리가 많아지면서, 각 프로그래밍 언어 등에서도 이에 대한 지원이 들어가기 시작했다.
- java: 8부터 1
나노마이크로초까지 지원할 것으로 보인다. 이전에는 1밀리초까지 지원하는 것으로 되어있었다. (근데 리눅스+ext4에서 실험해보면 1초다) - python: 3.3부터 1나노초까지 지원한다. 이전에는 1초까지만 지원했다.
- node.js: 여전히 1초까지만 지원한다. 이슈는 올라왔는데 반응이 없는 것으로 보아 앞으로도 지원하지 않을 것 같다.
정정
- java8이 1나노초 정밀도를 지원하게 되는 줄 알았는데, r6404를 보니 오버플로우 방지를 위해 1마이크로초로 잘라내고 있었다. (2013/02/03)
좋은 포스트 감사합니다. 읽어보고 흥미가 생겨 찾아보니 찾아보니 perl 은 2000년 초반 릴리즈된 5.7 부터 나노초 연산을 지원햇네요
좋아요좋아요
2000년이면 1ns 정밀도를 지원하는 파일시스템도 없었을거고 리눅스도 2002년에서야 2.5.48 나오면서부터 지원하기 시작한건데;; 역시 펄은 언제나 앞서가네요!
좋아요좋아요
C++11에서 추가된 chrono 헤더를 이용하면 역시 나노초 계산이 가능합니다!
http://www.cplusplus.com/reference/chrono/
좋아요좋아요