Сервер должен отвечать как можно скорее, разве серверный процесс не всегда запрашивает запросы, если есть запросы? Итак, он хотел бы цикл while. Но почему не потребляется процессор (одноядерный), если нет посещения?Почему сервер HTTP не потребляет много процессора?
ответ
не серверный процесс всегда опрос?
Не, если это разумная реализация.
Существует множество реализаций HTTP-серверов, а серверы связи в целом и опросы не являются подходящей архитектурой для любого из них.
Например, некоторые серверы полагаются на асинхронные операции ввода-вывода, используя события, обратные вызовы и т. Д. Другие реализации полагаются на блокирующие API-интерфейсы сокетов при работе в многопоточных режимах, а также могут быть и другие архитектуры ...
Для использования API-интерфейсов блокирующих сокетов при блокировке процесс останавливается и не потребляет процессор; Это? – heLomaN
@heLomaN - Правильно. – Amit
Для использования 'асинхронного ввода-вывода' запросы будут запускать некоторые действия для их обработки. Не существует основного цикла, но почему процесс не прекращается? Программное обеспечение с процедурным программированием должно выйти после запуска, даже зарегистрировав некоторые обратные вызовы; то как вызывать, когда он не работает? – heLomaN
не является процессом сервера всегда, если есть запросы?
Нет. Это блокирует, либо в accept()
вызова или вызова select()
. Нет опроса.
FTR, есть другие варианты (вероятно, более вероятно), такие как 'epoll_wait()' - и это, если мы не говорим о Windows. –
- 1. Почему Datastax Opscenter потребляет слишком много процессора?
- 2. Почему STRAIGHT_JOIN потребляет больше процессора?
- 3. короткий оператор, который потребляет много циклов процессора
- 4. NSRunLoop потребляет много процессора и памяти
- 5. java.io.BufferedReader.readLine() потребляет 99% процессора Почему?
- 6. Почему Java socket.connect() потребляет 100% ресурсов процессора?
- 7. Состояние ожидания нить потребляет слишком много циклов процессора
- 8. Создание qthread как singleton потребляет много загрузки процессора
- 9. Почему RegExp.test потребляет много времени в IE?
- 10. Почему контейнер-докер потребляет много памяти?
- 11. внешний процесс, делающий Java, потребляет много CPU
- 12. Django «migrate» потребляет слишком много CPU
- 13. CGImageRef потребляет много памяти
- 14. JTextArea потребляет много памяти
- 15. Jhipster потребляет много ресурсов
- 16. Приложение потребляет слишком много батареи
- 17. Почему «whiptail» потребляет 100% моего процессора на Fedora на EC2?
- 18. ObjectInputStream потребляет слишком много памяти
- 19. Python потребляет 99% процессора, запускающего eventlet
- 20. Служба доступности потребляет много батареи
- 21. Почему приложение Grails потребляет 30% процессора при развертывании на Tomcat?
- 22. QLabel потребляет слишком много места
- 23. UIButton setBackgroundImage потребляет много памяти
- 24. Java потребляет слишком много памяти
- 25. Sidekiq потребляет слишком много памяти
- 26. Java потребляет слишком много памяти
- 27. Phusion Passenger потребляет много памяти
- 28. Запрос MYSQL потребляет слишком много памяти
- 29. Pthread Mutex: pthread_mutex_unlock() потребляет много времени
- 30. Silverlight 5 Earth spinning animation с градиентами потребляет много ресурсов процессора
Вам необходимо предоставить более подробную информацию о том, какое программное обеспечение сервера и как оно настроено. В общем случае сервер не активно проводит опрос, они сообщают им ОС, когда доступно новое соединение/данные. До тех пор они просто спали. – kicken
@kicken Очень жаль, что я мало знаю о деталях сервера; Я имел в виду общую интуицию. Вы имеете в виду, что это какой-то механизм, такой как аппаратное прерывание? – heLomaN