Size: a a a

Unity Floodилка

2021 March 09

P

Phantom in Unity Floodилка
Grygory Dyadichenko
Ну это тот же буффер только на стеке. Float.parse ты по нему по идее не сделаешь)
Ну так, аллоцировать в куче, и чистить не нужно вроде
источник

P

Phantom in Unity Floodилка
Точнее, дешевле получается
источник

GD

Grygory Dyadichenko in Unity Floodилка
Не, ты можешь и байт эррей через поинтер не стеке выделить) Ансейф умеет фигачить массив простых типов на стек)
источник

GD

Grygory Dyadichenko in Unity Floodилка
Просто выделение даже 100 байт памяти не играет роль)
источник

GD

Grygory Dyadichenko in Unity Floodилка
Единоразовое)
источник

GD

Grygory Dyadichenko in Unity Floodилка
А при парсинге через сплит у тебя короче будет просто парсинг тормозить со временем из-за гц) То есть ты аллоцируешь просто тысячи строк, а потом их чистишь)
источник

GD

Grygory Dyadichenko in Unity Floodилка
Через ГЦ) Типа ридонлиспан - это просто условно куда положить. Но по нему ты не сможешь сделать float.Parse и мы возвращаемся к проблеме восстановления флоат числа) Но вообще если ты в анменедж что-то пуляешь) Тебе по хорошему потом это нужно очистить и руками, чтобы оперативка не закончилась) Ну и тогда уж Span юзать - зачем ридонли?)
источник

GD

Grygory Dyadichenko in Unity Floodилка
Ну и вроде до юнити пока .Net 5 не доехал)
источник

GD

Grygory Dyadichenko in Unity Floodилка
Хотя я про это даже не слышал, но это вышло в 2018 году, надо будет на досуге почитать) Судя по тексту тип прикольный, но его нужно курить) По сути некий общий контейнер для всяких stackalloc, нативных поинтеров и т.п.) Это просто контейнер, то есть он не имеет отношения к выделению буффера на стеке)
источник

GD

Grygory Dyadichenko in Unity Floodилка
Это так же делается через stackalloc, просто в Span можно записать указатель плевать на какую память. Стек, менедж или поинтер в натив)
источник

P

Phantom in Unity Floodилка
Grygory Dyadichenko
Через ГЦ) Типа ридонлиспан - это просто условно куда положить. Но по нему ты не сможешь сделать float.Parse и мы возвращаемся к проблеме восстановления флоат числа) Но вообще если ты в анменедж что-то пуляешь) Тебе по хорошему потом это нужно очистить и руками, чтобы оперативка не закончилась) Ну и тогда уж Span юзать - зачем ридонли?)
Можно
источник

GD

Grygory Dyadichenko in Unity Floodилка
Круто) Пользоваться этим конечно почти никто не будет) Так как это сильно повышает сложность поддержки) Я думаю, что stackalloc дай бог в шарпе кто-то раз в год пользуется. Или ансейфом) Ну с ECS нативными указателями и нативной памятью наверное пользуются чаще)
источник

GD

Grygory Dyadichenko in Unity Floodилка
Phantom
Можно
Да не, нельзя) И строку ты на стек не можешь положить)
источник

P

Phantom in Unity Floodилка
У Parse есть перегрузка с ReadOnlySpan
источник

GD

Grygory Dyadichenko in Unity Floodилка
stackalloc разрешён только для массивов простых типов)
источник

GD

Grygory Dyadichenko in Unity Floodилка
Прикольно) Массив чаров)
источник

P

Phantom in Unity Floodилка
Grygory Dyadichenko
stackalloc разрешён только для массивов простых типов)
Ну Char простой тип
источник

GD

Grygory Dyadichenko in Unity Floodилка
Ну да, это массив простых типов)
источник

GD

Grygory Dyadichenko in Unity Floodилка
Да, ты прав - не знал)
источник

GD

Grygory Dyadichenko in Unity Floodилка
Но к сожалению в юньке ни стандарта 2.1, ни .Net 5)
источник