내 코드의 성능을 알아 내려고했지만, time
명령의 출력을 이해할 수 없습니다. 아무도 시간 명령 출력의 의미를 설명해주십시오.시간 명령의 출력을 이해하는 방법?
time ./filereader
real 0m0.193s
user 0m0.012s
sys 0m0.056s
무엇 real
, user
, sys
:
다음은 내가 무엇을 얻을?
내 코드의 성능을 알아 내려고했지만, time
명령의 출력을 이해할 수 없습니다. 아무도 시간 명령 출력의 의미를 설명해주십시오.시간 명령의 출력을 이해하는 방법?
time ./filereader
real 0m0.193s
user 0m0.012s
sys 0m0.056s
무엇 real
, user
, sys
:
다음은 내가 무엇을 얻을?
에서 : http://zch051383471952.blogspot.com/2010/01/different-of-real-user-sys-time.html
리얼 실제 경과 시간을 의미한다; User 및 Sys는 프로세스에 의해서만 사용 된 CPU 시간을 로 참조합니다.
- Real은 통화 시작부터 종료까지의 벽시계 시간입니다. 이것은 시간 경과를 포함하여 모든 경과 시간입니다. 은 다른 프로세스에서 사용되고 프로세스 사용이 차단 된 시간 (예 : 이 완료 될 때까지 기다리는 중입니다)입니다.
- 사용자는 프로세스 내에서 사용자 모드 코드 ( 커널 외부)에 소비 된 CPU 시간의 양입니다. 이것은 프로세스를 실행하는 데 사용 된 실제 CPU 시간 만 입니다. 다른 프로세스와 시간 프로세스가 소비하는 데 걸리는 시간은 이 아닙니다.
- Sys는 프로세스 내에서 커널에서 소비 한 CPU 시간의 양입니다. 이 은 커널에서 시스템 호출에 소비 한 CPU 시간을 이 여전히 사용자 공간에서 실행중인 라이브러리 코드 인 과 대조하여 실행하는 것을 의미합니다. 'user'처럼이 프로세스는 에서 사용하는 CPU 시간입니다.
'real'은 소요 시간입니다. 스톱워치로 시간을 정하면 그게 당신이 얻는 것입니다.
'user'는 프로세스 자체에서 사용 된 CPU 시간입니다.
'sys'는 커널이 프로세스를 위해 소비 한 CPU 시간의 양입니다.
'진짜'는 스톱워치가 말하는 시간은 아니며, 적어도 내 관찰에서. 예를 들어 어젯밤에 나는 프로세스를 시작했고 오늘 아침에는 실제 2376m6.172s를보고합니다. 실제로는 12 시간 미만이 경과했습니다. – feklee
C/C++로 개발할 경우 gprof를 사용하여 코드를 프로파일 링해야합니다 (http://www.cs.duke.edu/~ola/courses/programming/gprof.html).
포괄적 인 대답은 중복 질문을 참조하십시오. http://stackoverflow.com/questions/556405/what-do-real-user-and-sys-me-in-the-output-of-time1 –