Size: a a a

2021 March 25

V

Vladimir in phpGeeks
Maxim Kainov
В космосе летают зеленые человечки, аргументируй, что их нет
Я этого не утвреждал, а вот что асинхронный код не дает ускорения ты только что сказал выше
источник

S🛸

Sergey 🛸 in phpGeeks
Maxim Kainov
С чего он дает ускорение?
Нет ожидания io
источник

A

Artyom in phpGeeks
А, cluster по количеству ядер, понял.
источник

M

Maxim Kainov in phpGeeks
Sergey 🛸
Нет ожидания io
Какого io
источник

A

Artyom in phpGeeks
В ASP.NET Core (C#) кстати запросы обрабатываются пулом потоков, поэтому Thread.CurrentThread.Id каждый раз будет возвращать разный результат.
Но как на уровне сокетов этот запрос дробится между пулом потоков - чёрт его знает.
источник

V

Vladimir in phpGeeks
Maxim Kainov
Какого io
Пока 1 воркер при классическом подходе берет данные от клиента, что-то с ними делает, идет в кэш, ждет пока оттуда получит ответ, потом идет в  базу, и ждет пока данные из базы придут, воркер работающий асинхронно берет данные, ставит задачу ОС на получение/передачу данных и не ожидая завершения этого процесса начинает обрабатывать следующий запрос. Это же главная фишка Workerman, они об этом пишут у себя в описании:
WorkerMan is an asynchronous event driven framework for easily building fast, scalable network applications. Its core is an event loop and each worker can handle many connections concurrently. WorkerMan uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications.
источник

V

Vladimir in phpGeeks
Ядро - эвент луп и воркеры, которые могут множество соединений обработать конкурентно.
источник

V

Vladimir in phpGeeks
Вот тебе и io
источник

V

Vladimir in phpGeeks
Отсюда и скорость дикая в бенчмарках
источник

M

Maxim Kainov in phpGeeks
Vladimir
Пока 1 воркер при классическом подходе берет данные от клиента, что-то с ними делает, идет в кэш, ждет пока оттуда получит ответ, потом идет в  базу, и ждет пока данные из базы придут, воркер работающий асинхронно берет данные, ставит задачу ОС на получение/передачу данных и не ожидая завершения этого процесса начинает обрабатывать следующий запрос. Это же главная фишка Workerman, они об этом пишут у себя в описании:
WorkerMan is an asynchronous event driven framework for easily building fast, scalable network applications. Its core is an event loop and each worker can handle many connections concurrently. WorkerMan uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications.
Ну обычно то много воркеров используется, и юзерам не надо долго ждать.
источник

A

Artyom in phpGeeks
Vladimir
Пока 1 воркер при классическом подходе берет данные от клиента, что-то с ними делает, идет в кэш, ждет пока оттуда получит ответ, потом идет в  базу, и ждет пока данные из базы придут, воркер работающий асинхронно берет данные, ставит задачу ОС на получение/передачу данных и не ожидая завершения этого процесса начинает обрабатывать следующий запрос. Это же главная фишка Workerman, они об этом пишут у себя в описании:
WorkerMan is an asynchronous event driven framework for easily building fast, scalable network applications. Its core is an event loop and each worker can handle many connections concurrently. WorkerMan uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications.
Зашёл я на сайт этого фреймворка и выпал с документации на китайском и отсутствия английской версии.
источник

V

Vladimir in phpGeeks
Maxim Kainov
Ну обычно то много воркеров используется, и юзерам не надо долго ждать.
Если профиль твоей нагрузки - io, то асинхронщиная эффективней, для cpu bound нагрзуки эффекта такого не будет, потому что воркер будет выполнять операции для одного запроса, а остальные, условно, будут стоять в очереди
источник

V

Vladimir in phpGeeks
Это основы асинхронщины
источник

V

Vladimir in phpGeeks
Странно, что ты этого не понимаешь
источник

AG

Anton Gordeev in phpGeeks
Artyom
Зашёл я на сайт этого фреймворка и выпал с документации на китайском и отсутствия английской версии.
Вообще английская версия есть. http://www.workerman.net/en/ только дока отвалилась чот
источник

V

Vladimir in phpGeeks
Anton Gordeev
Вообще английская версия есть. http://www.workerman.net/en/ только дока отвалилась чот
Можно гугл транслейт)
источник

M

Maxim Kainov in phpGeeks
Vladimir
Если профиль твоей нагрузки - io, то асинхронщиная эффективней, для cpu bound нагрзуки эффекта такого не будет, потому что воркер будет выполнять операции для одного запроса, а остальные, условно, будут стоять в очереди
С асинхронностью тоже новые потоки будут создаваться, и ресурс когда то закончится )
источник

A

Artyom in phpGeeks
Vladimir
Можно гугл транслейт)
Куда мы катимся, юзать гугл транслейт для перевода с китайского :D
Как бы не пришлось лет через 20 изучать его наравне с английским.
источник

V

Vladimir in phpGeeks
Maxim Kainov
С асинхронностью тоже новые потоки будут создаваться, и ресурс когда то закончится )
С асинхронностью 1 поток может обработать множество запросов
источник

V

Vladimir in phpGeeks
В этом и есть эффективность
источник