
Марк ☢
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

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

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

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

Vladimir
11.02.2017
18:26:16

Google

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
И с ними хуже или лучше нгинкса ?