Anonymous
разве что ты парсишь вообще весь интернет
Anonymous
ну вообще я уже немного изменил свою задачу
Anonymous
и теперь я парсю сообщения которые приходят с сокет соединения
Anonymous
Чего это вдруг?
а сколько может физически отдать бекенд на пыхепитонеруби по твоему ?
Loyd
Почему бекенд именно? Неважно кто и неважно на чём. Зависит от кучи факторов
Loyd
Если там сервачок с 1000 rps и пиковой 10к, то твои 10/с никто не заметит. Ну и так далее
Loyd
сервачок -> балансер + сервачки скорее
Anonymous
где ты такое видел ?
Loyd
Мы о чём говорим вообще сейчас?
Anonymous
о вебне?
Loyd
Тезис какой?
Anonymous
серваки не раздают так быстро чтобы был смысл качать на расте
Anonymous
и конкретно у тайпикал сайта не более чем 100рпс
Loyd
серваки не раздают так быстро чтобы был смысл качать на расте
На чём качать — похуй. А вот на чём парсить это вот уже важнее
Anonymous
вконтакт в свое время вообще специально ограничивал тремя реквестами в секунду
Loyd
и конкретно у тайпикал сайта не более чем 100рпс
Я хз с одного или нет они выкачивают
Anonymous
Это к одному хосту
а тут серьёзный бизнес и выкачивают с десятков тысяч проксей ?
Loyd
Да откуда я знаю? Иди спроси у того, кто выкачивает
Anonymous
На чём качать — похуй. А вот на чём парсить это вот уже важнее
парсишь на самому слоу языке @ всёравно будет тормозить сишный libxml.parse и xpath
Anonymous
можно распаралелить
Anonymous
хотя это на любом языке можно
Anonymous
да, руст тут не нужен, но он нужен мне
Loyd
Да хватит об абстракциях говорить
Loyd
Конкретная задача
Loyd
Вот у меня был самописный поисковик, причём вытаскивал со страниц я только основное содержимое
Loo
да, руст тут не нужен, но он нужен мне
слова достойные уважения
Loyd
И вот вытаскивание его (readability) занимало 100% cpu постоянно
Anonymous
Loo
в коллекцию цитат, к таким великим фразам как "кажется я знаю, как сделать заебись"
Loyd
Я больше 50к страниц/сек тупо выкачивать не мог, ибо даже шустрая реализация readability стратило, например, на среднюю статью в википедии по 300-400мс
Loyd
Сейчас я ленты выкачиваю в реалтайме. Лент много, надо по сайтам ходить и основное содержимое тащить
Loyd
Переписал алгоритм на раст и ускорилось на порядок
Anonymous
а для чего качаешь?
Anonymous
>50к страниц/сек >300-400мс ты же понимаешь что 300-400мс даст 3 станицы в сек ?
Loyd
Ты про параллелизацию вообще хоть что-то слышал?
Anonymous
у тебя 20 тысяч ядер ?
Loyd
Но и не все статьи это статьи в википедии
kitsu
у тебя 20 тысяч ядер ?
во-первых 10, во-вторых асио
Anonymous
>асио >cpu-bound парсинг
kitsu
там же 300 на сеть, не?
Anonymous
300 ядер на сеть, 10000 на парсинг. серьёзный бизнес
kitsu
300мс на сеть
Anonymous
на реквест ?
Loyd
50к/час
Loyd
Потому и жалуюсь
Anonymous
олсо насколько я понимаю ридабилити это и есть дрочка libxml над документом. в ней и ботлнек. а она на сях
Loyd
Да парсинг это ерунда по сравнению с самим readability
Loyd
Ну, если парсинг xml
kitsu
на реквест ?
иначе цифры и вправду странные
Loyd
С html5 всё сильно сложнее
Loyd
Там вообще sax не подходит, и всё становится грустно
Anonymous
ну libxml умеет хреновый хтмл в хмлподобный формат
Anonymous
да, надо полностью пережевывать
Anonymous
ну в любом случае если нужно кверить надо полностью
Loyd
Поэтому либо берёшь какой-нибудь readabilitysax, который часть страниц распарсить верно не может, но зато быстро (80мс на ту же среднюю вики страницу), либо точно, но медленее
Loyd
ну в любом случае если нужно кверить надо полностью
Ну, в моей реализации кверить не надо, всё за один проход
Loyd
А тот же mozilla/readability во всю кверит, но там производительность жесть вообще (пару секунд). Для пользователя, который юзает как фичу в браузере это нормально
Loyd
А для парсинга это жопа
Anonymous
примерно понял что оно делает
Anonymous
с другой стороны зачем тебе ридабилити... ты бы мог просто вытащить текста из страницы
Anonymous
это должно делаться быстро
Loyd
Ладно, подытожу свою мысль: похер на чём писать фетчинг, хоть на пыхе, главное чтобы мультиплексированием было и был доступ на уровень tcp (довольно часто парсить и хранить http заголовки даже не надо)
Loo
тогда уж что мелочиться
Loo
предложите ему свой tcp/ip реализовать на dpdk в user space
Loyd
А вот дальнейшая обработка — парсинг, кверинг, вытаскивание содержимого, нормализация всякая, разбор документа в вектор и так далее, то есть что cpu требует, вот тут уже важно на чём ты
Anonymous
>был доступ на уровень tcp (довольно часто парсить и хранить http заголовки даже не надо) лол ну вот опять же говорим о ботлнеке в парсинге но всёравно опускаемся в байтоебство
Loyd
Но с парсингом в расте неплохо
Loyd
Вон html5ever
Loyd
Там парсер может кастомный дом собирать
Loyd
Если тебе нужен прям солидный dom такой, с блумами всякими для быстрого кверинга и так далее, то один дом, если структура нужна и пару атрибутов, то гораздо проще.
Loyd
Хотя такое и на интерфейсах простых сделать можно было, но не видел такого подхода ещё.
Anonymous
в расте есть монады?
Meowbe/BSD-2-Clause
Option, Result
Meowbe/BSD-2-Clause
Vec