개요
time은 유닉스 및 유닉스 계열 운영체제에서 제공되는 명령어(또는 쉘 내장 명령)로, 지정된 프로그램이나 명령을 실행하고 그 실행에 소요된 시간 정보를 측정·출력한다. 측정 대상은 실제(실시간) 경과 시간, 사용자 모드(CPU)에서 사용된 시간, 시스템 모드(Kernel)에서 사용된 시간 등이다.
주요 기능
-
실행 시간 측정:
time [옵션] 명령어 [인수...]형태로 사용한다. 명령어가 종료된 뒤,real,user,sys세 항목을 포함한 결과를 표준 오류(stderr) 스트림에 출력한다.real: 명령이 시작된 시점부터 종료될 때까지의 실제 경과 시간(벽시계 시간).user: 명령이 사용자 모드에서 CPU를 사용한 시간.sys: 명령이 커널(시스템) 모드에서 CPU를 사용한 시간.
-
옵션
-p: POSIX 호환 형식으로 출력한다. (real X.XX,user X.XX,sys X.XX)-f format(GNU time) : 출력 형식을 지정한다. 예)-f "Elapsed: %E, CPU: %S"-o 파일(GNU time) : 결과를 지정 파일에 저장한다.-a(GNU time) : 기존 파일에 결과를 추가한다.
구현 형태
- 쉘 내장: 대부분의 현대 쉘(bash, zsh, ksh 등)에서는
time을 내장 명령으로 제공한다. 이 경우 별도 실행 파일을 호출하지 않으며, 쉘 내부에서 바로 측정한다. - 외부 프로그램: POSIX 표준에 따라
/usr/bin/time형태의 독립 실행 파일도 존재한다. 외부 프로그램은 내장과 옵션 및 출력 형식에서 차이가 있을 수 있다(예: GNU time은 풍부한 포맷 옵션을 제공한다).
역사 및 표준
time명령은 1970년대 초 UNIX Version 6에 포함된 이후, 여러 UNIX 변종에 지속적으로 구현되었다.- POSIX.1‑2008 표준에도
time명령이 정의되어 있으며, 최소한-p옵션과real,user,sys출력이 요구된다.
사용 예시
$ time ls -l /usr/bin > /dev/null
real 0m0.012s
user 0m0.000s
sys 0m0.004s
위 예시에서 ls -l /usr/bin 명령이 표준 출력으로 결과를 내보내지 않도록 리다이렉션한 뒤, time이 12 ms(벽시계 시간) 동안 실행되었으며, 그 중 0 ms는 사용자 모드, 4 ms는 시스템 모드에서 사용된 것으로 보고한다.
관련 명령·도구
date: 현재 시스템 시간을 조회·조작한다.timedatectl(systemd 기반 시스템) : 시스템 시간 및 타임존 관리에 사용된다.perf,strace등 : 보다 상세한 성능·시스템 호출 분석에 활용된다.
참고 문서
- POSIX.1‑2008, “Utility Description — time”
- GNU
time매뉴얼 페이지 (man time) - Bash Builtin
time매뉴얼 (help time)
time 명령은 UNIX 환경에서 성능 측정 및 스크립트 디버깅에 보편적으로 활용되는 표준 도구이며, 그 동작과 출력은 POSIX 규격에 의해 정의되어 있다.