metaclass: (Default)
[personal profile] metaclass
В libuv (сишная либа для async io, используется в node.js, rust(вроде бы) и прочем таком) для реализации poll поверх IOCP используются недокументированные функции afd.sys - фактически, реверс-инжинеренный кусок кода из winsock.dll:

https://github.com/libuv/libuv/blob/v1.x/src/win/winsock.c#L477
https://github.com/piscisaureus/epoll_windows/blob/master/src/epoll.c#L721
http://x64blog.name/1306870455

Конечно же, тесты этого дела странным образом падают на 2003 винде.
Не то, чтобы мне сильно был нужен epoll на винде, да интегрированный в event loop этой либы, но безумные решения, попадающиеся под руки каждый день, задолбали уже.

Date: 2014-12-28 12:56 am (UTC)
From: [identity profile] berezovsky.livejournal.com
Это, я так понимаю, всё идёт поиск адекватного аналога msmq. Придётся писать свой и оформлять коробочной либой!

Date: 2014-12-28 09:01 am (UTC)
From: [identity profile] vp.livejournal.com
оно настолько хорошее?

Date: 2014-12-28 11:43 am (UTC)
From: [identity profile] dn2k.livejournal.com
о, шизофреник березоффский снова посетил НАС!!!

Date: 2014-12-28 07:27 am (UTC)
From: [identity profile] falcrum.livejournal.com
"C:\Program files" в коде не зашито?

Date: 2014-12-28 10:18 am (UTC)
From: [identity profile] anonim-legion.livejournal.com
Я когда такое читаю

>для реализации poll поверх IOCP используются недокументированные функции afd.sys

Мне впоминаются строки известной песни:

Шанкр вместе с гонореей
Тоже выдумал еврей.
Только зачем? Вот не понятно!

Date: 2014-12-28 10:44 am (UTC)
From: [identity profile] metaclass.livejournal.com
Зачем - примерно понятно, другой вопрос - как им совесть вообще разрешила это делать.
С учетом того, что информации про эти функции - ровно две страницы в гугле.

Date: 2014-12-28 12:08 pm (UTC)
From: [identity profile] dn2k.livejournal.com
метакласс, почему тебя беспокоит чужая совесть? ты святой что ли?

Date: 2014-12-28 12:08 pm (UTC)
From: [identity profile] dn2k.livejournal.com
а ну-ка пошел вон, умалищенный!!

Date: 2014-12-28 12:46 pm (UTC)
From: [identity profile] slonopotamus.livejournal.com
Чем не устроила реализация poll(2) из gnulib?

Date: 2014-12-28 01:02 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Они пытаются select не использовать, т.к. он считается тормозным.

Date: 2014-12-28 08:53 pm (UTC)
From: [identity profile] ng67.livejournal.com
Выучили бы уже 1С и успокоились...

Date: 2014-12-29 04:25 am (UTC)
From: [identity profile] ext_1684112 (from livejournal.com)
Судя по аватарке, вы виндой не пользуетесь.

Аналогом poll в винде является именно IOCP. А эмуляция poll на select'е образца 1983 года будет весьма медленной, и по умолчанию не поддерживает больше 64 сокетов. После использования такого вот "кроссплатформенного" подхода господа линуксоиды начнут кричать про "тормозную винду".

Date: 2014-12-29 05:36 am (UTC)
From: [identity profile] slonopotamus.livejournal.com
Винда сама по себе тормозная, куда не плюнь. Я тут жене ноутбук настраивал - 15 минут установка собственно винды (с флэшки на SSD), а потом ДЕВЯТЬ ЧАСОВ установки обновлений, в течение которых пользоваться девайсом было невозможно из-за выжранного проца и оперативки. Да я бы генту из исходников быстрее собрал.

Date: 2015-01-02 07:35 pm (UTC)
From: [identity profile] octagram (from livejournal.com)
Зато в Линуксах, по крайней мере, в Debian, всё меняется, всё устаревает очень быстро. Не давно ставил Яндекс.Сервер, последний релиз которого был в 2010м году, и .deb есть для Линукса, но вот уже что–то не срастается, файлы, которые были установлены в rc.d что–то там ломают к чертям, пока их оттуда не удалишь. Так я и не понял, как по–нормальному Яндекс.Сервер в автозагрузку поставить, и что не так с теми rc скриптами, которые в комплекте с Яндекс.Сервером. А на Windows всё работает. А сколько лет DOS приложения работали на Windows, если учесть халявный Windows XP Mode в Windows 7? В Линуксе такой фанатичной преемственности нет.

Обратная сторона такой преемственности — это геморройность обновлений, да. Каждое обновление сопровождается хитрым логическим выражением, проверяющим версии DLL, записи в реестре, подключённое железо и ещё всякое такое.

Сделать так, как в Gentoo, не получится. Это, скорее, надо функционально–реактивное программирование применить, чтобы ускорить процесс. То есть, конфигурация компьютера — это поведение (то есть, функционально–реактивное значение). Конфигурация OS — это результат функции от конфигурации компьютера. И конфигурация компьютера, и функция от этой конфигурации могут инкрементально меняться со временем, вызывая реакции, по итогам которых результат перевычисляется с минимально требуемыми перевычислениями. Я пока не вижу, чтобы ФРП добралось до пакетных менеджеров, так что имеем то, что имеем.

Date: 2014-12-29 10:21 am (UTC)
From: [identity profile] lionet.livejournal.com
Аналогом poll? Нет. poll и select — это одно и то же, в данном контексте. IOCP — аналог kqueue/epoll

Date: 2014-12-29 10:26 am (UTC)
From: [identity profile] ext_1684112 (from livejournal.com)
Я в смысле аналога по предназначению. То есть, "если вам нужно очень быстрое и очень масштабируемое I/O, используйте %EntityName%".

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 1st, 2025 06:31 pm
Powered by Dreamwidth Studios