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

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

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

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

Когда использовать anonymous struct?