Что такое go:noescape?

Senior
83 просмотров
AFK Offer AI

go:noescape говорит компилятору что аргументы функции не утекают в кучу. Применяется к функциям, реализованным на ассемблере, где escape analysis не работает. Если поставить на обычную Go-функцию — будет ошибка. Это оптимизация: без noescape компилятор перестраховывается и выделяет аргументы на куче. Используется в runtime и стандартной библиотеке для performance-critical кода.

Следующий вопрос

Как спроектировать объектное хранилище типа S3?