Перейти к содержимому
Максиметер

Одна строка в конфиге ускорила production-ответ с 126–230 мс до менее чем 9 мс

Одна строка в конфиге ускорила production-ответ с 126–230 мс до менее чем 9 мс Paweł Urbanek собрал очень практичный гайд по профилированию Rust, где оптимизации идут не по принципу «что интереснее», а по реальной отдаче. Из кейсов: N+1 SQL → 21 запрос превратили в один JOIN, функция ускорилась со 104 до 70 мкс. Три последовательных HTTP-вызова → tokio::try_join!, итоговое время почти вдвое меньше. Неправильно настроенный Brotli в maplibre/martin → скорость была всего 27,9 KB/s. Одна правка конфига дала примерно 57x ускорение, а latency упала до <9 мс. Ещё жёстче кейс с write lock, который держали на всём HTTP round trip. После переноса блокировки P95 для читателей рухнул с 1,11 секунды до 9,42 мкс. И отдельная классика Tokio: unbounded channel молча накопил 73 сообщения, потому что consumer не успевал. Никакой ошибки, просто медленное движение к OOM. Полезный порядок из гайда: сначала SQL и HTTP, потом locks и channels, и только после этого CPU profiling. Потому что один лишний поход в базу обычно стоит дороже, чем сотни мелких оптимизаций внутри hot loop. ➡️ hotpath.rs/blog/profiling-rust-guide

293 просмотров

Канал в каталоге Максиметера

3 650 подписчиков · IT и технологии

Читать дальше

Два раза в неделю свежие посты этого канала — на почту и в личную ленту. Без повторного поиска канала вручную.