Size: a a a

2020 March 05

DM

Dmitry M in Go-go!
Мимо Проходящий
INLINE static void uv_insert_pending_req(uv_loop_t* loop, uv_req_t* req) {
 if (loop->pending_reqs_tail) {
   req->next_req = loop->pending_reqs_tail->next_req;
   loop->pending_reqs_tail->next_req = req;
   loop->pending_reqs_tail = req;
 } else {
   req->next_req = req;
   loop->pending_reqs_tail = req;
 }
}

сможете объяснить что делает и как работает этот кодТ ?
Я откуда знаю, я всегда пользовался Boost::Asio
источник

МП

Мимо Проходящий in Go-go!
асинхронщину в играх не используют. Никогда
источник

МП

Мимо Проходящий in Go-go!
всмсл асинхронный пул потоков
источник

МП

Мимо Проходящий in Go-go!
только евентлупы
источник

DM

Dmitry M in Go-go!
Кто говорил про асинхронный пул потоков? Разве task based parallelism не зашел?
источник

МП

Мимо Проходящий in Go-go!
Dmitry M
Я откуда знаю, я всегда пользовался Boost::Asio
я тоже не с первого раза осилил. И не каждый мидл программист с/с++ вот так прям сразу скажет
источник

DM

Dmitry M in Go-go!
Мимо Проходящий
я тоже не с первого раза осилил. И не каждый мидл программист с/с++ вот так прям сразу скажет
Это Libuv, который смотрел лет 5 назад
источник

а

а кто это in Go-go!
Мимо Проходящий
INLINE static void uv_insert_pending_req(uv_loop_t* loop, uv_req_t* req) {
 if (loop->pending_reqs_tail) {
   req->next_req = loop->pending_reqs_tail->next_req;
   loop->pending_reqs_tail->next_req = req;
   loop->pending_reqs_tail = req;
 } else {
   req->next_req = req;
   loop->pending_reqs_tail = req;
 }
}

сможете объяснить что делает и как работает этот кодТ ?
господа, это не C/C++ чат
источник

а

а кто это in Go-go!
а что в коде сложного ,мне непонтяно
источник

МП

Мимо Проходящий in Go-go!
Dmitry M
Кто говорил про асинхронный пул потоков? Разве task based parallelism не зашел?
если не использовать  больше потоков чем кол-во ядер, то норм.
источник

МП

Мимо Проходящий in Go-go!
а кто это
а что в коде сложного ,мне непонтяно
По-моему, любить писать такой код каждый раз - это особого рода болезнь головы. Что это делает, ты знаешь?
источник

а

а кто это in Go-go!
я вижу связный список ожидаемых запросов
источник

а

а кто это in Go-go!
вернее, функцию, которая добавляет запрос в этот список
источник

p

pragus in Go-go!
Мимо Проходящий
Ну вот да, про это и был вопрос. Спасибо.
На задачах обработки трафика это даёт буст ~ 30% на ядро. Все потому что память медленная и random memory access делает ещё хуже.

Так что если хочется ускориться - стоит уменьшить количество хождений по поинтерам
источник

МП

Мимо Проходящий in Go-go!
а кто это
вернее, функцию, которая добавляет запрос в этот список
на самом деле кольцо
в loop->pending_reqs_tail лежит указатель на последний засунутый запрос.
если в loop ничего не было -- то создаем выроженное кольцо из переданного запроса которе ссылается само на себя.
иначе вставляем новый запрос в разрыв и loop->pending_reqs_tail будет опять указывать на последний засунутый запрос.

но ладно, забьём
источник

МП

Мимо Проходящий in Go-go!
но выглядит действительно как FIFO-очередь на интрузивном однонаправленном списке со вставкой в хвост
источник

МП

Мимо Проходящий in Go-go!
Там ещё много в этом коде доп. очков спецолимпиады на премию дарвина
источник

DK

Danik Kapral in Go-go!
Приветствую Всех. Подскажите, пжта, годную либу для работы с WHOIS доменов
источник

МП

Мимо Проходящий in Go-go!
pragus
На задачах обработки трафика это даёт буст ~ 30% на ядро. Все потому что память медленная и random memory access делает ещё хуже.

Так что если хочется ускориться - стоит уменьшить количество хождений по поинтерам
этот вообще универсальный совет. Делаешь T вместо T* - и сразу всё становится быстрее в бенчах
источник

p

pragus in Go-go!
Мимо Проходящий
этот вообще универсальный совет. Делаешь T вместо T* - и сразу всё становится быстрее в бенчах
Не совсем))
источник