만약 내가한다면:
sleep 1
비교적
sleep 1 & wait $!
포그라운드 프로세스와 백그라운드 프로세스를 생성할 때 CPU 사용량에 차이가 있습니까? 아니면 두 라인의 성능이 정확히 동일합니까?
답변1
이 두 명령을 사용하여 쉘은 1/ 절전을 수행하는 병렬 하위 프로세스를 생성하고 2/ 운영 체제에... 절전 프로세스가 끝날 때까지 쉘 프로세스를 일시 중지하도록 지시합니다. 그러면 성능은 동일합니다.
답변2
예.
내 시스템에서 첫 번째는 3.0밀리초가 걸리고 두 번째는 3.3밀리초의 CPU 시간이 걸립니다.
사실, 1초 동안 잠을 자면 CPU 시간이 0.3밀리초도 걱정되지 않습니다.
0.3ms는 아마도 배경 fork
에 추가해야 하는 추가 콘텐츠 때문일 것입니다. sleep
즉, 이는 백그라운드에서 작업을 실행하는 데 드는 10%의 추가 비용이 아니라 일회성 비용입니다.