Post Thumbnail

Порция байтоебства на сегодня

Автор расследовал регрессию производительности в своём Go-коде. Изменение в файле hash2.go вызвало падение скорости на 3% в совершенно другом, hash2u16.go, хотя его код не менялся. Оказалось, что дело в сдвиге выравнивания инструкций на 416 байт, из-за чего горячие участки кода из разных функций попали в одни и те же наборы L1-кэша инструкций, превысив его 8-канальную ассоциативность, и начали вытеснять друг друга.

Решения как такового нет, но начиная с Go 1.25 можно использовать -ldflags="-funcalign=64", чтобы выравнивать функции по 64 байтам и делать бенчмарки более надежными.

В статье самое интересное - посмотреть как автор в принципе разбирается с отладкой производительности

Похожее

Post Thumbnail

Select

Автор разбирает устройство select в Go как совместную работу компилятора и ранта...

Post Thumbnail

HTTP/2 h2c

Обычно HTTP/2 работает только поверх TLS через HTTPS. Но h2c позволяет использов...

Post Thumbnail

let-go

Ну вы поняли, сегодня пятница и для вас аж второй язык программирования за день ...