Содержание
Производительность
Замеры сделаны на Intel Xeon Gold 6338, Fedora 41, Go 1.22. Каждый бенчмарк запускался 10 раз, в таблице — медиана.
Результаты
Одна операция на одном потоке, данные заранее прогреты.
| Операция | Время | Аллокации | Память |
|---|---|---|---|
Get | 269 нс | 0 | 0 Б |
Post | 142 нс | 3 | 192 Б |
Group | 676 нс | 0 | 0 Б |
Routes | 704 нс | 0 | 0 Б |
HasRoute | 877 нс | 0 | 0 Б |
Под нагрузкой
На многоядерных машинах операции почти не конкурируют между собой, поэтому задержки под нагрузкой близки к однопоточным.
Как воспроизвести
Бенчмарки лежат в репозитории. Запуск:
go test -run=^$ -bench=. -benchmem -count=10 ./...
Советы
- Не включайте отладочный вывод в продакшене.
- Сначала измерьте: чаще всего время уходит не туда, куда кажется.
- Следите за аллокациями на горячем пути вашего кода.