Post Thumbnail

Возможно вы слышали про уровни микроархитектуры. Каждый уровень включает в себя набор расширений набора команд. Тулинг Go предоставляет доступ к настройке уровней через переменную окружения GOAMD64

Наши 64-битные процессоры Intel и AMD совершенствовались на протяжении десятилетий. При компиляции программы на Go компилятор по умолчанию ориентируется на набор инструкций, которому уже почти 20 лет. Полученный бинарный файл работает практически на любом чипе x64, но при этом не использует ни одну из инструкций, добавленных после 2003 года.

Автор поигрался с настройкасм GOAMD64 и сравненил использование разных уровней в Go на библиотеке roaring. Получил большой прирост производительности при переходе на v2 и v3 уровни, но почти ничего от v4.

Можете попробовать такой подход у себя, но перед сменой целевого уровня компиляции тестируйте CPU-нагруженный код

Похожее

Post Thumbnail

Кодим чат

Автор просто час пишет чат. Никаких слов, никакого хайпа. Просто час кодинга под...

Post Thumbnail

Арены жалко

Go отказался от экспериментальных Memory Arenas - механизма, позволявшего выделя...