Сохранен 30
https://2ch.hk/b/res/163440253.html
Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Аноним 22/10/17 Вск 13:17:32 #1 №163440253 
Screen Shot 2017-10-22 at 13.09.04.png
Screen Shot 2017-10-22 at 13.09.36.png
Screen Shot 2017-10-22 at 13.14.43.png
Screen Shot 2017-10-22 at 13.14.58.png
Так, как работают демоны в операционке, поясните?

Вот есть веб-сервер, он что-то слушает. Он должен маскимально быстро обработать поступивший запрос. Ок, предположим, что listener реализован через цикл while true ...
Но вот я пишу while true на РУБИ - и процесс начинает жрать весь CPU. Почему же nginx не жрет в idle режиме весь CPU? Как это реализовано?

Ок, допустим, там таймаут - 0.001 секунда, но это же дохуя? Процесс ruby с таким таймаутом уже жрет 2,8% CPU, но это все равно много
Аноним 22/10/17 Вск 13:20:51 #2 №163440426 
Бамп
Аноним 22/10/17 Вск 13:22:26 #3 №163440511 
>>163440253 (OP)
> Так, как работают демоны в операционке
П Р О С Т О
Р
О
С
Т
О
Аноним 22/10/17 Вск 13:22:55 #4 №163440544 
>>163440253 (OP)
https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D1%80%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
>/thread
Аноним 22/10/17 Вск 13:38:11 #5 №163441435 
>>163440544
Нихуя не понял, конечно, хули /thread то? Кто шлет прерывание? Вот идет запрос GET /, каким образом это конвертируется в прерывание?
Аноним 22/10/17 Вск 13:44:10 #6 №163441729 
>>163441435
учи ccna
Аноним 22/10/17 Вск 13:46:33 #7 №163441842 
14165898482260.gif
>>163440511
По моему, ты слегка охуел, не так ли?
Аноним 22/10/17 Вск 13:46:37 #8 №163441849 
>>163441729
Неужели это так сложно, что нельзя объяснить парой абзацев?
Аноним 22/10/17 Вск 13:48:13 #9 №163441937 
14359296073110.jpg
>>163441849
Думаю ОП, что сложновато, и к тому же он весьма вероятно сейчас дрочит свое дрисло морковкой, а ты его отвлекаешь. Да, мне кажется это главная причина.
Аноним 22/10/17 Вск 13:48:33 #10 №163441961 
>>163441849
да пиздец сколько всего выписывать, если ты думаешь что это операционка делает
Аноним 22/10/17 Вск 13:51:56 #11 №163442147 
>>163441961
А кто это делает?
Аноним 22/10/17 Вск 13:53:33 #12 №163442228 
8073769.jpg
cain1.jpg
>>163442147
Я не знаю, но вот тебе тарелка и робот.
Аноним 22/10/17 Вск 13:53:39 #13 №163442234 
>>163440253 (OP)
Не стоит вскрывать эту тему.
Аноним 22/10/17 Вск 13:54:43 #14 №163442291 
>>163442234
Ребята, давайте вскроем эту тему, стоит интересоваться этой темой. Вы молодые, здоровые, умные. Это то что надо. Это яхты и виллы. Сюда нужно вливаться незамедлительно. Серьезно, любой из вас будет счастлив от такого. Это лучше чем сидеть на жопе и создавать треды про еот. Я вполне понимаю что данным сообщением вызову дополнительный интерес, но хочу сразу предостеречь — самое опасное в жизни — прожить ее, не заметив, как она прошла, будучи серой мышью. Остальные просто не будут такими умными чтобы сделать все чисто
Аноним 22/10/17 Вск 13:59:26 #15 №163442530 
>>163442228
Тот умник мелкобуквенный, пусть лучше он ответит.
Аноним 22/10/17 Вск 14:15:07 #16 №163443349 
бамп
Аноним 22/10/17 Вск 14:17:08 #17 №163443473 
>>163443349
Пошел нахуй. Если не понимаешь, значит это тебе не нужно.
Аноним 22/10/17 Вск 14:21:30 #18 №163443743 
>>163443473
Сам иди нахуй с такой логикой
Аноним 22/10/17 Вск 14:22:17 #19 №163443793 
>>163440253 (OP)
>Но вот я пишу while true на РУБИ - и процесс начинает жрать весь CPU.
Любой процесс в while(tru) будет драть CPU.
>Почему же nginx не жрет в idle режиме весь CPU?
Они читали мануал и книгу по сетям.
>Как это реализовано?
Довольно просто.

Аноним 22/10/17 Вск 14:27:28 #20 №163444179 
Сука, весь тред кидаются тегами и пишут, что довольно просто, но никто ничего разумного не объяснил.

>Как работает электрическая лампочка накаливания, как свет возникает в ней?
>ТОК)))0
>читай физику за 10 класс
>очень просто))
Аноним 22/10/17 Вск 14:32:29 #21 №163444625 
>>163440253 (OP)
Ты уверен, что хочешь с нуля писать веб-сервер, не имея представления о работе сети? Есть куча готовых реализаций, они МАКСИМАЛЬНО БЫСТРЫЕ.
Аноним 22/10/17 Вск 14:38:43 #22 №163444977 
>>163444625
По пути выучу основы, я же для себя хочу написать

Читаю вот TCP/IP Illustrated (а после буду HTTP guide собрался).

Но вопрос ОП-поста мучает меня сейчас
Аноним 22/10/17 Вск 14:39:08 #23 №163444999 
>>163440253 (OP)
man epoll
Аноним 22/10/17 Вск 14:48:16 #24 №163445423 
Screen Shot 2017-10-22 at 13.46.21.png
>>163440253 (OP)
В посте присутствует слово из спам листа. Обезьяна пидор.
Аноним 22/10/17 Вск 14:54:39 #25 №163445746 
>>163445423
Каким механизмом сделано так, что doShit() привязан к событию клика?
Аноним 22/10/17 Вск 14:55:17 #26 №163445781 
>>163440253 (OP)
Потому что они нормально взаимодействуют с ядром.
Аноним 22/10/17 Вск 14:57:07 #27 №163445868 
>>163440253 (OP)
select, poll, epoll, ruby async server ---> гугл
Аноним 22/10/17 Вск 14:59:35 #28 №163446002 
>>163445423
chronou$

Он еблан походу, а не пидор
Аноним 22/10/17 Вск 15:05:45 #29 №163446308 
>>163444977
Боюсь, на руби/питоне нельзя реализовать работу с сетью на низком уровне, скриптовые языки предоставляют более высокоуровневое апи для сокетов.

Этот >>163445423- петух написал в принципе верно, но без конкретики. А в твоем конкретном случае тебе надо использовать функцию select в либе sockets. Это в питоне так, ну в руби наверняка сделано аналогично. Обработка запросов будет выглядеть примерно так:

rlist, wlist, xlist = [], [], []
while True:
select(rlist, wlist, xlist, timeout)
do_work(rlist, wlist, xlist)
Аноним 22/10/17 Вск 15:06:00 #30 №163446320 
>>163445746
В каждом языке-фреймворке свои методы. В жабаскрипте, например, гугли таймеры, коллбеки, промисы.
comments powered by Disqus