
Марк ☢
11.02.2017
18:04:30
Сейчас -- да

Roman
11.02.2017
18:04:35

Nikolay
11.02.2017
18:04:47

Google

Nikolay
11.02.2017
18:05:02
и неважно, что на входе

Roman
11.02.2017
18:05:07

Sergey
11.02.2017
18:05:10
камушки емнип нынче умеют парсить протокол на linerate не напрягаясь

Nikolay
11.02.2017
18:05:12
писаться будет только тогда, когда сокет готов
поэтому причины фейспалма и не вижу

Roman
11.02.2017
18:05:37

Nikolay
11.02.2017
18:05:40
оно так и работает
как я написал

Sergey
11.02.2017
18:05:48

Roman
11.02.2017
18:06:30

Sergey
11.02.2017
18:07:01
а что, есть ещё какие-то протоколы? ?

Roman
11.02.2017
18:07:02
я про http1
так там ещё сверху могут навернуть. тот же гребаный multipart-formdata

Google

Nikolay
11.02.2017
18:07:06
вот это.
то есть нельзя epoll на udp-сокет? почему вдруг?
на запись асинхронную
швыряем данные из кучи источников в сокет асинхронно, а отправляются датаграммы по мере возможности

Roman
11.02.2017
18:07:39

Nikolay
11.02.2017
18:07:53
я просто думал, что это очевидный факт и его не надо писать :)

Roman
11.02.2017
18:08:42
вообще, кардинально ситуацию с производительностью может исправить переделка апи между ядром и юзерлендом.
но на это мало кто пойдёт.

Марк ☢
11.02.2017
18:09:08
Почему же. Пытаются libaio

Roman
11.02.2017
18:09:22

Sergey
11.02.2017
18:09:42

Марк ☢
11.02.2017
18:10:03

Nikolay
11.02.2017
18:11:19

Марк ☢
11.02.2017
18:11:21
Vmsplice ?

Roman
11.02.2017
18:11:22
вообщем, нам надо иметь возможность в epoll добавить пачку fd с соответствующими масками.

Nikolay
11.02.2017
18:11:28
там как раз на уровне модуля ядра логика реализована

Roman
11.02.2017
18:11:56
ну и из epoll получать пачку сразу

Марк ☢
11.02.2017
18:12:13

Roman
11.02.2017
18:12:57
а, вру. сейчас epoll_wait возвращает пачку событий.

Марк ☢
11.02.2017
18:13:18

Google

Roman
11.02.2017
18:13:36

Марк ☢
11.02.2017
18:14:16
Ты не понял. Единожды сообщив что в сокете есть данные -- ядро не будет больше теребонькать пока я не вычитаю всё
Грубо

Nikolay
11.02.2017
18:14:29

Марк ☢
11.02.2017
18:14:31
Это EPOLLET

Nikolay
11.02.2017
18:14:43
есть edge-triggered, есть level-triggered

Roman
11.02.2017
18:14:48

Марк ☢
11.02.2017
18:15:05

Roman
11.02.2017
18:15:12
тьфу, про ET

Nikolay
11.02.2017
18:15:58
тьфу, про ET
ну я понял, просто указал, что это не единственный вариант :)

Roman
11.02.2017
18:15:58

Nikolay
11.02.2017
18:16:33

Марк ☢
11.02.2017
18:16:39

Roman
11.02.2017
18:17:56

Марк ☢
11.02.2017
18:18:04
И там есть memory-mapped io. Сечешь о чем это я ?

Roman
11.02.2017
18:18:55
эээ
пойду почитаю )

Марк ☢
11.02.2017
18:19:18
Сейчас нетлинксокет используется для всякой хери

Google

Марк ☢
11.02.2017
18:19:43
Почему б не всунуть туда вызов сисколлов какгбы -- не знаю
пойду почитаю )
Например работа с таблицей маршрутов идет через нетлинксокет

Nikolay
11.02.2017
18:20:32

Roman
11.02.2017
18:21:33

Марк ☢
11.02.2017
18:21:39
А в нетлинксокете все уже придумано в плане структур

Roman
11.02.2017
18:22:12
дело даже не в этом
а в количестве операций, которые можно сделать за 1 сисколл

Марк ☢
11.02.2017
18:22:36

Nikolay
11.02.2017
18:22:41

Admin
ERROR: S client not available

Марк ☢
11.02.2017
18:22:49
В нетлинксокете ты сам волен придумывать структуру
Там есть массивы и вложенности
Аля джсон
Тока все бинарное понятно

Nikolay
11.02.2017
18:23:17
другое дело, если этот векторный сисколл будет выполняться дольше, чем n обычных - будет фигня

Марк ☢
11.02.2017
18:23:48
Говорят, парсинг этой. Труктуры адски быстрый. Пожтому не должно. И будет таки выгода от пачечности
У меня на гитхабе есть nltrace он позволяет трейсить проги не написанные через libnl3. Очень ограничено конечно. Но уже коечто
Давно писал. Не забрасывайте какашками
Но оно работает

Google

Vladimir
11.02.2017
18:26:16

Nikolay
11.02.2017
18:27:24
кому-то он может нравится и решать его задачу - на здоровье

Vladimir
11.02.2017
18:27:45

Nikolay
11.02.2017
18:27:50
более того, ты не поверишь, но я выше в чате защищал го

Марк ☢
11.02.2017
18:28:22
Хм. А нодеджсники взяли парсер именно у нгинкса, емнип
Но им же и для малинки надо.

Roman
11.02.2017
18:29:28

Nikolay
11.02.2017
18:29:32
у picohttpparser одна проблема, как я вижу - его вряд ли возьмут в ядро какого-либо языка
потому что он заточен под конкретные платформы и архитектуры проца
разве нет?
там хитрые SSE-инструкции он раскладывает

Марк ☢
11.02.2017
18:30:08
А там нет чтоли с выключенными оптимизациями ?
Тоесть на голом си

Nikolay
11.02.2017
18:30:24
нинаю
но вообще в этом и суть

Марк ☢
11.02.2017
18:30:39
Темпестники написали сами. Тоже с авэикс

Nikolay
11.02.2017
18:30:48
он использует магию современных инструкций, чтобы быстро все обрабатывать

Vladimir
11.02.2017
18:33:03
https://github.com/h2o/picohttpparser/pull/10

Марк ☢
11.02.2017
18:34:16
И с ними хуже или лучше нгинкса ?