tgoop.com/unsafecsharp/274
Create:
Last Update:
Last Update:
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
BY Unity: Всё, что вы не знали о разработке
Share with your friend now:
tgoop.com/unsafecsharp/274