2013-05-03 2 views
6

수면은 어떻게 CPU 리소스를 사용하고 있습니까?어떻게 수면 CPU PHP를

스크립트를 잠자기 할 때 CPU의 100 % 또는 0 %를 사용합니까? 설명 할 수 있니?

내가 아는 한 평균 부하는 증가하지만 CPU를 어떻게 사용합니까?

+2

테스트하기 쉽습니다. 두 개의 콘솔 : 하나는 스크립트를, 다른 하나는'htop' 또는'top' 또는 그 안에있는 것입니다. 왜 그걸 시도하지 않았 니? – Bojangles

+1

직접 확인 https://github.com/php/php-src/blob/master/ext/standard/basic_functions.c#L4436 –

+0

요청한 이유가 CPU 프로파일 러를 사용했다면 , 여기에 일반적으로 일어나는 일이 있습니다. 10 초 동안 잠을자는 작은 프로그램이 있습니다. 따라서 벽 시계 시간은 10 초입니다. 그러나이를 수행하는 데 필요한 CPU의 양은 약 1 마이크로 초 였을 수 있으며, 그 중 990 나노초는 수면으로 들어가거나 나가는 데 소비 될 수 있습니다. 따라서 사용되는 CPU 시간이 아주 적기 때문에 99 %의 절전 모드를 유지합니다. 이것은 많은 사람들을 혼란스럽게합니다. –

답변

14

sleep이 작동하는 방식은 PHP 기능 sleepcalls into the appropriate runtime function이 실제로 주석에서 말하는 것을 수행하기 때문에 OS에 따라 다릅니다.

For Windows이면,이 함수는 SleepEx입니다. For other operating systems POSIX 함수 sleep입니다. 두 경우 모두 해당 함수의 설명서에 절전 모드 동안 절전 모드 스레드가 실행될 수 없으므로 원하는 경우 CPU 리소스를 소비 할 수 없다는 내용이 명시되어 있습니다.

+0

해당 문서에 대한 링크도 게시 할 수 있습니까? –

+0

리눅스의 경우, 프로세스는 CPU를 소비하지 않습니다 : http://unix.stackexchange.com/questions/22886/do-sleeping-processes-get-the-same-cpu-time/22887 – Alexey