Post Thumbnail

Разбор неожиданной оптимизации в Go: сдвиг массива на 4 байта через добавление padding-поля ускоряет операцию обнуления на 49% на Intel и на 9% на AMD. Обнуляция - это что-то типо b.data = [words]uint32{}

Но почему так происходит? Компилятор генерирует инструкцию REP STOSQ, чей механизм Enhanced REP (ERMSB) записывает целые кэш-строки без предварительного чтения, но только при 8-байтном выравнивании адреса - при смещении. Добавление 4 байт как раз выравнивает позицию массива по 8 в примере автора.

Не уверен что вам это пригодиться, но мне нравятся люди, которы зелазют так глубоко в кишки к байтам и битам

Похожее

Post Thumbnail

C на Go

Интересный пропозал - добавить возможность сборки Go-пакетов, использующих cgo д...

Post Thumbnail

Rune

Команда Unstable Build заопенсорсила свою нативную IDE Rune, написанную на Go. ...