Производительность
Замеры сделаны на Intel Core i7-12700, Fedora 41, Go 1.22. Каждый бенчмарк запускался 20 раз, в таблице — медиана.
Результаты
Одна операция на одном потоке, данные заранее прогреты.
| Операция | Время | Аллокации | Память |
|---|---|---|---|
Info | 655 нс | 0 | 0 Б |
Error | 823 нс | 0 | 0 Б |
SetLevel | 783 нс | 2 | 128 Б |
Enabled | 362 нс | 2 | 160 Б |
Sync | 710 нс | 0 | 0 Б |
Под нагрузкой
При 8 параллельных потоках пропускная способность растёт почти линейно: узкое место — не basalttrail, а сам код вокруг.
Как воспроизвести
Бенчмарки лежат в репозитории. Запуск:
go test -run=^$ -bench=. -benchmem -count=20 ./...
Советы
- Создавайте
Loggerодин раз и переиспользуйте его. - Сначала измерьте: чаще всего время уходит не туда, куда кажется.
- Значения по умолчанию подобраны для типичной нагрузки — меняйте их только после замеров.