Size: a a a

2020 February 22

RS

Roman Sharkov in Go-go!
потому-что мейнтенеры net/http не ставили перед собой задачу написать самую эффективную реализацию HTTP?
источник

AR

Aleksandr Razumov in Go-go!
Roman Sharkov
net/http меня не устраивает в плане распоряжения памятью. Много совершенно ненужно нагрузки на GC и замедление в целом из-за аллокаций
Надеюсь это было померяно на реалистичных бенчмарках под нагрузкой, которая реально планируется
источник

RS

Roman Sharkov in Go-go!
Aleksandr Razumov
Если давать нагрузку выше, то fasthttp захлебывается позже std, но в итоге оба варианта дают миллисекунды tail latency
если хочется ниже то надо идти в сторону C++ uWebSockets (там есть и обычный HTTP)

но на C++ мне пока сиё чудо писать рано
источник

AR

Aleksandr Razumov in Go-go!
Roman Sharkov
если хочется ниже то надо идти в сторону C++ uWebSockets (там есть и обычный HTTP)

но на C++ мне пока сиё чудо писать рано
если хочется ниже то всегда есть раст с актиксом
источник

AR

Aleksandr Razumov in Go-go!
zero allocation в го это всегда конец удобному и безопасному API
источник

RS

Roman Sharkov in Go-go!
универсальную и относительно прожорливую как показывают бенчмарки fasthttp 🙂
источник

AR

Aleksandr Razumov in Go-go!
Roman Sharkov
универсальную и относительно прожорливую как показывают бенчмарки fasthttp 🙂
я только что забенчмаркал и на хелловорде разницы особой и нет
источник

AR

Aleksandr Razumov in Go-go!
нереальная быстрота fasthttp это какой-то миф уже
источник

AR

Aleksandr Razumov in Go-go!
видимо нужно пайплайнинг включить, чтобы оно реально влияло
источник

RS

Roman Sharkov in Go-go!
прошу оставлять подобные комментарии при себе и не вносить негативную атмосферу в беседу
источник

RS

Roman Sharkov in Go-go!
тогда так и напиши: “ИМХО это лишнее” и никто слова не скажет
источник

RS

Roman Sharkov in Go-go!
ладно, понятно всё с вами, товарищ
источник

AR

Aleksandr Razumov in Go-go!
я после того, как поизучал net/http, понял, что столько edge-case-ов я сам не поддержу, и альтернативные http имплементации нужно юзать только когда оно реально того стоят
источник

AR

Aleksandr Razumov in Go-go!
учитывая, что с каждым годом GC всё лучше, рантайм всё быстрее, а исправленных багов всё больше, со временем актуальность fasthttp падает имхо
источник

AR

Aleksandr Razumov in Go-go!
разве что в TechEmpower показывать, что не актиксом единым
источник

AR

Aleksandr Razumov in Go-go!
ну с каждым релизом
источник

RS

Roman Sharkov in Go-go!
Aleksandr Razumov
я после того, как поизучал net/http, понял, что столько edge-case-ов я сам не поддержу, и альтернативные http имплементации нужно юзать только когда оно реально того стоят
в данном случаю ИМХО стоит. Не нужна полноценная имплементация HTTP и HTTP/2, нужен лишь быстрый HTTP/1 сервер
источник

AR

Aleksandr Razumov in Go-go!
запустить тот же net/http в режиме "по воркеру на запиненное ядро, gomaxprocs=1, O_REUSEPORT" и будет очень быстро
источник

RS

Roman Sharkov in Go-go!
Aleksandr Razumov
учитывая, что с каждым годом GC всё лучше, рантайм всё быстрее, а исправленных багов всё больше, со временем актуальность fasthttp падает имхо
увы, улучшения GC лишние аллокации не оправдывают
источник

AR

Aleksandr Razumov in Go-go!
Roman Sharkov
увы, улучшения GC лишние аллокации не оправдывают
лишние это > 0?
источник