개요
time 명령어는 특정 프로그램이나 스크립트의 실행 시간을 측정하고, 사용자 CPU 시간, 시스템 CPU 시간, 실제 경과 시간 등의 상세한 자원 사용량 통계를 제공합니다. 이를 통해 애플리케이션의 성능 병목 지점을 파악하는 데 도움을 줍니다.
주요 측정 지표
- 실제 시간 (Real time): 명령어가 시작되어 종료될 때까지의 실제 경과 시간
- 사용자 CPU 시간 (User CPU time): 사용자 모드에서 CPU가 명령어를 실행하는 데 사용된 시간
- 시스템 CPU 시간 (System CPU time): 커널 모드에서 CPU가 명령어를 실행하는 데 사용된 시간
주요 옵션
time 명령어는 다양한 옵션을 통해 출력 형식을 제어하거나 추가 정보를 요청할 수 있습니다.
출력 형식 및 제어
생성된 명령어:
명령어를 조합해 보세요.
설명:
`time` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
기본 사용법
time ls
ls 명령어의 실행 시간을 측정합니다.
POSIX 형식으로 출력
time -p sleep 1
sleep 명령어의 실행 시간을 POSIX 호환 형식으로 출력합니다.
측정 결과를 파일에 저장
time -o time_output.txt -a ls -l
ls -l 명령어의 측정 결과를 time_output.txt 파일에 저장합니다. time의 출력은 표준 에러로 나오므로 2>를 사용합니다.
사용자 정의 형식으로 출력
time -f "Real: %e User: %U System: %S" sleep 1.5
실제 시간, 사용자 CPU 시간, 시스템 CPU 시간을 특정 형식으로 출력합니다.
팁 & 주의사항
time 명령어 사용 시 유의할 점과 추가 팁입니다.
셸 내장 time과 외부 time 명령어
bash나 zsh 같은 셸에는 자체 time 내장 명령어가 있습니다. 이는 보통 real, user, sys 세 가지 값만 출력하며, 외부 time 명령어(/usr/bin/time)보다 기능이 제한적입니다. 더 상세한 정보를 원한다면 외부 time 명령어를 명시적으로 호출해야 합니다.
외부 time 명령어 명시적 사용
\time sleep 1
/usr/bin/time sleep 1
셸 내장 time이 아닌 외부 time 명령어를 사용하려면 역슬래시(\time)를 붙이거나 전체 경로를 지정합니다.
측정 정확도
- 매우 짧은 명령어(밀리초 단위)는 측정 오차가 클 수 있습니다.
- 시스템의 현재 부하 상태에 따라 측정 결과가 달라질 수 있으므로, 정확한 측정을 위해서는 여러 번 반복하여 평균값을 확인하는 것이 좋습니다.
출력 리다이렉션
time 명령어의 출력은 표준 에러(stderr)로 나옵니다. 따라서 time의 측정 결과를 파일로 리다이렉션하려면 2> 또는 2>>를 사용해야 합니다. 예를 들어, `time ls 2> time_result.txt`는 ls의 출력은 화면에 표시하고 time의 결과만 파일에 저장합니다.