Перейти в канал

Tg: habr.com

1
Go-ассемблер: когда компилятор бессилен В подавляющем большинстве кейсов оптимизация на Go сводится к устранению лишних аллокаций. Но в задачах с тяжёлой математикой или криптографией иногда встречаются узкие места, где высокоуровневого кода недостаточно и приходится спускаться к «железу». Главный вызов здесь — архитектура AMD64. Из-за малого количества регистров любой промах мимо кэша или лишнее обращение к памяти нивелирует весь профит. Ручная оптимизация эффективна лишь тогда, когда вычисления удаётся полностью изолировать внутри регистров. Рассмотрим создание функции умножения 256-битных чисел на низком уровне.