Информация об изменениях

Сообщение Re[2]: Memory/Span почему Length 32 bit ? от 11.07.2020 9:43

Изменено 11.07.2020 21:46 VladD2

Re[2]: Memory/Span почему Length 32 bit ?
Здравствуйте, _NN_, Вы писали:

_NN>Здравствуйте, okon, Вы писали:


O>>Сабж.


O>>Как предполагается работать с массивами памяти более 4Гб ?


_NN>Через указатель или сделать свою структуру.

_NN>Вот тут объяснение причины:
_NN>https://github.com/dotnet/apireviews/tree/master/2016/11-04-SpanOfT

existing managed code that deals with arrays as virtually all APIs that deal with lengths and offsets are encoded using int. This penalizes the 90% case due to the need for conversions, which makes the developers code more complicated, which might also impact the ability for the code gen to emit performant code.


ну такое объяснение достаточно спорное, да есть проблема например при конвертации в массив, но ее можно решить исключением если длинна превышает int32,
хочешь получить старый массив — будь добр уважать старые традиции и не выходить за рамки int32 — делай Slice(0, Int32.Max) нарезай список массивов.
А если тебе не нужно конвертировать в массив — то почему бы не работать с новым Span/Memory который был бы не ограничен Int32
Re[2]: Memory/Span почему Length 32 bit ?
Здравствуйте, _NN_, Вы писали:

_NN>Вот тут объяснение причины:

_NN>https://github.com/dotnet/apireviews/tree/master/2016/11-04-SpanOfT

existing managed code that deals with arrays as virtually all APIs that deal with lengths and offsets are encoded using int. This penalizes the 90% case due to the need for conversions, which makes the developers code more complicated, which might also impact the ability for the code gen to emit performant code.


ну такое объяснение достаточно спорное, да есть проблема например при конвертации в массив, но ее можно решить исключением если длинна превышает int32,
хочешь получить старый массив — будь добр уважать старые традиции и не выходить за рамки int32 — делай Slice(0, Int32.Max) нарезай список массивов.
А если тебе не нужно конвертировать в массив — то почему бы не работать с новым Span/Memory который был бы не ограничен Int32