Здравствуйте, reversecode, Вы писали:
R>народ на zig реализовывал некоторые варианты
R>помоему первые два
R>даже с воркстилингом + uring
R>смутно помню результаты очень приблизительно сравнимы
R>даже с go сравнивали
R>https://gist.github.com/kprotty/5a41e9612657de00788478a7dde43d78
R>в других ревизиях надо смотреть
R>они там разные варианты реализовывали
R>сейчас глянул уже оставили только один
Ну вот мы тоже общались по задаче. Что, мол, можно сделать вариант с запуском в баше этой утилиты в несколько экзэмпляров.
Как я понял, входящий список отслеживаемых адресов просто бьётся. К примеру, на 4. И запускаются 4 экземпляра. Что тогда утилиту можно сделать однопоточной.
Но я вижу в этом минус. Как в system design — проблема с популярной личностью с шардами. Один шард нагружен, который обслуживает личность, другие простаивают.
Так и тут одно подмножество адресов, допустим, будет постоянно мигать/много событий. Другие нет. Тогда на этот один из 4ёх экзэмляров утилиты упадёт основная работа.
А утилита однопоточная.
Если же многопоточная:
1 поток eloll_wait и отдаёт через общую очередь таски, как в снипетте. И есть потоки разгребатели. То лучше будет.