반응형

time 명령 사용시 출력되는 real, user, sys의 의미에 대해서 알아보았습니다.



2023. 11. 5 최초작성



다음 포스트에서는 OpenCV를 빌드할 때 time 명령을 사용하여 시간을 측정하고 있습니다.

 

Raspberry Pi 4에 OpenCV 4.8.1 설치하는 방법

https://webnautes.tistory.com/1885 



OpenCV 빌드 완료 후, 다음처럼 측정시간이 출력되는데 이때 보이는 real, user, sys의 의미에 대해 알아보았습니다.

 

real    92m15.953s

user    316m48.971s

sys     18m5.063s



time 명령의 결과에 나타나는 real, user, sys 시간은 리눅스 및 유닉스 시스템에서 프로세스가 실행되는 동안 걸린 시간을 나타냅니다.real은 실제 프로그램이 실행되는데 걸린 시간을 의미하며, user 및 sys는 프로그램을 CPU에서 처리하는데 걸린 시간입니다.

 

- real은 프로그램이 실행된 시작된 시점부터 종료될 때까지 실제로 경과한 전체 시간입니다. 즉, 실제 실행 시간을 측정한 시간이며, 프로그램 실행 중 다른 프로세스가 실행됨에 따라 프로그램이 대기하게 된 시간을 포함합니다.

 

- user는 해당 프로그램의  프로세스가 사용자 모드에서 실행되는 동안 걸린 CPU 시간을 나타냅니다. CPU 시간은 CPU가 실제로 프로그램의 명령을 처리하는 데 걸린 시간을 말합니다. 여러 CPU에서 병렬로 작업을 수행할 수 있는 멀티스레드 프로그램의 경우, 모든 코어의 시간이 합산되어 user 시간이 real 시간보다 클 수 있습니다. 다른 프로세스가 실행됨에 따라 프로그램이 대기하게 된 시간은 포함하지 않습니다.

 

- sys는 시스템 모드에서 프로세스가 실행되는 데 걸린 CPU 시간으로, 커널 내부에서 실행되는 시간을 나타냅니다.

 

위에서 보여준 OpenCV 빌드시 측정된 결과에서 user 시간이 real 시간보다 크다는 것은 여러 CPU 코어가 사용되어 프로그램이 병렬로 실행되었음을 의미합니다. 실제로는 92분이 걸렸지만, 여러 코어가 작업에 참여함으로써 총 사용자 CPU 시간은 316분에 달했다는 것을 알 수 있습니다.  여러 CPU 코어를 통해 프로그램을 동시에 실행하여 전체 실행 시간을 단축된 것입니다.

 

user+sys는 프로그램이 실행중에 사용한 실제 CPU 시간을 알려줍니다. 이 수치는 모든 CPU에 걸쳐 있으므로 프로세스에 여러 스레드가 있는 경우(이 프로세스가 둘 이상의 프로세서가 있는 컴퓨터에서 실행 중일 경우) real의 경과 시간을 초과할 수 있습니다(일반적으로 발생함). 

 

User+Sys를 사용하면 프로세스의 CPU 사용량을 측정할 수 있습니다. 이를 사용하여 성능을 벤치마킹할 수 있습니다. 이 기능은 둘 이상의 CPU 코어가 계산에 사용되는 멀티 스레드 코드에 특히 유용합니다.



real은 실제 경과 시간을 나타내며, user 및 sys 값은 CPU 실행 시간을 나타낸다는 점을 기억하세요. 따라서 멀티코어 시스템에서는 user 및 sys 시간의 합이 real 시간을 초과할 수 있습니다. 





참고

https://stackoverflow.com/a/556411



반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts