Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 11

Я ждал чего-то интересного. Жаль, что мои ожидания - мои проблемы.

А если взять спецификацию языка C++, то там 870 тысяч слов. И как вообще на нём писать умудряются…

Тоже не понимаю

Не поверите - пишу и плачу (c)

Как говорится - потрудитесь сделать поще, сложно - само получится.

Протокол http прост. Можно конечно придумать сложности по любому вопросу, тем не мение ... Этот протокол хорошо документирован. Я работаю с ним тоже не 1 десяток и версии 1 и 1.1 довольно просты в реализации.

Например, в спецификации описано, как работает конвейеризация HTTP, но, если вы попробуете задействовать эту фичу «на местности», то сами напрашиваетесь на проблемы и… всё окончится грустно.

Верно подмечено. Я изучал имплементацию pipelining'а на примере некоторых топовых фреймворков из списка TechEmpower FrameworkBenchmarks. Разрабы делают реализацию просто в лоб и тупо. К примеру, если скорость приёма сервера больше, чем его отдача, то просто пожирается память на выделение всё новых буферов в памяти.

Вот тут я немного возмущался: https://github.com/TechEmpower/FrameworkBenchmarks/discussions/8048

Я же в проекте fastwsgi сделал эту часть HTTP-сервера по умному. Т.е. сервер умеет притормаживать чтение входящих запросов, в зависимости от состояния части, отвечающей за отправку данных.

---------------

Ну и ссылочка на топик, где я сетую на то, что в Python-лидерах находится "поделка", которая просто базовые требования TCP-сервера не соблюдает, не то что HTTP:

https://github.com/TechEmpower/FrameworkBenchmarks/issues/9055

Вот такие чудеса на виражах.

Интересные цифры в бенчмарках, как-то не верится в 9МЛН запросов в секунду, не разбирались откуда взялись эти цифры?

И отдельный вопрос, зачем реализовывать HTTP 1, если существует HTTP/2?

Разбирался. Всё так и есть. Даже было время, когда на работе 99% такую же железку взял и установил там некоторые бенчи и лично проверил:

https://github.com/TechEmpower/FrameworkBenchmarks/issues/7402#issuecomment-1482918369

Получил довольно близкие цифры.

Раньше у них стояли 10Gbit сетевухи, а теперь уже 40Gbit. Мне на работе удалось проверить только 10Gbit и 25Gbit.

Вот точный конфиг: https://github.com/TechEmpower/FrameworkBenchmarks/issues/8736#issuecomment-1973835104

не понимаю, там фигурируют цифры количества потоков, количества соединений. То есть это не то что я думал на один поток и одно соединение, а

20 threads and 512 connections Thread Stats Avg Stdev Max +/- Stdev Latency 208.87us 167.10us 12.36ms 83.52% Req/Sec 1.07M 50.41k 1.53M 70.88%

20-тредов и 512 соединений, при этом запросы это буквально / и отсылаются они громадными пачками (///////) и сервер их также обрабатывает. Это настолько нереалистичный сценарий, что лучше было просто замерять скорость интернета

Точно та же самая история и с программированием. На пике всех этих курсов по программированию, даже тут на Хабре встречалось много людей утверждавших, что математика для кодера не нужна…

Ага, думал я. Какой из тебя кодер без матеши, такой же простой протокол HTTP.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации