3.3Kпросмотров
4 сентября 2025 г.
Score: 3.6K
NoAlias Этот аттрибут используется для Burst и позволяет экономить на инструкциях.
Например: int Method(ref int a, ref int b) { b = 13; a = 42; return b;
} В данном случае Burst не знает, пересекаются ли данные a и b (хранятся ли в памяти в одном месте или нет).
То есть тут будет 3 инструкции mov, 2 для установки значения, а третья - для чтения этого значения. Если же добавить аттрибут NoAlias, возврат данных будет без дополнительной загрузки: int Method([NoAlias] ref int a, ref int b) { b = 13; a = 42; return b;
} Аттрибут можно использовать для NativeArray (контейнеров), которые не пересекаются, и в качестве возврата из методов [return: NoAlias]. При этом это имеет смысл, если метод не заинлайнен, т.к. при инлайне аттрибут не будет иметь смысла. #noalias #burst #code