2013-05-03 34 views
6

Ngủ bằng cách sử dụng tài nguyên cpu như thế nào?Làm thế nào giấc ngủ ăn CPU php

Có sử dụng 100% hoặc 0% CPU khi bạn ngủ tập lệnh của mình hay không. Bạn có thể giải thích?

Theo như tôi biết nó làm tăng tải trung bình, nhưng làm thế nào để nó sử dụng CPU?

+2

Đây là _so_ đơn giản để kiểm tra. Hai bàn giao tiếp: một với kịch bản của bạn, cái còn lại có 'htop' hoặc' top' hoặc bất kỳ thứ gì trong đó. Tại sao bạn không thử điều đó? – Bojangles

+1

Xem cho chính mình https://github.com/php/php-src/blob/master/ext/standard/basic_functions.c#L4436 –

+0

Nếu lý do bạn hỏi là bạn đã sử dụng trình biên dịch CPU trên đó , đây là những gì thường xảy ra. Bạn có một chương trình nhỏ đi vào giấc ngủ trong 10 giây. Vì vậy, thời gian đồng hồ treo tường của nó là 10 giây. Tuy nhiên, số lượng CPU cần thiết để làm điều đó có thể là khoảng 1 micro giây, trong đó 990 nano giây có thể được chi tiêu đi vào và ra khỏi giấc ngủ. Vì vậy, một chút thời gian CPU được sử dụng, nó là 99% trong giấc ngủ. Điều này gây nhầm lẫn cho nhiều người. –

Trả lời

14

Cách hoạt động của sleep phụ thuộc vào hệ điều hành, bởi vì hàm PHP sleepcalls into the appropriate runtime function để thực sự làm theo nội dung trên tin nhắn.

For Windows, chức năng đó là SleepEx. For other operating systems là chức năng POSIX sleep. Trong cả hai trường hợp, tài liệu cho các chức năng này nêu rõ rằng luồng ngủ không đủ điều kiện để chạy trong thời gian ngủ và do đó không thể tiêu thụ tài nguyên CPU ngay cả khi nó muốn.

+0

Bạn cũng có thể đăng liên kết tới các tài liệu đó không? –

+0

Trong trường hợp linux, quá trình không tiêu thụ CPU: http://unix.stackexchange.com/questions/22886/do-sleeping-processes-get-the-same-cpu-time/22887 – Alexey

Các vấn đề liên quan