Size: a a a

2021 January 15

E

EgorBo in pro.net
Aloraman
Вот у кекса данные в массив не влезают ибо индекс до сих пор int32
Массив 80 гигов структур по 20 байт - линейный кусок памяти же, взять вместо A условный Vector4<A> который будет содержать 4 экземпляра A и занимать 80 байт, добить конец массива нулями, что б нацело на 80 байт размер делился - и работать с Vector4<A> - тогда индекса хватит
так это то что я выше и писал
источник

A

Aloraman in pro.net
EgorBo
так это то что я выше и писал
А ну ок, продолбился в глаза поди, день не заходил
источник

E

EgorBo in pro.net
Vector256<byte>[int.MaxValue]
источник

E

EgorBo in pro.net
всё
источник

E

EgorBo in pro.net
80гб
источник

A

Aloraman in pro.net
Угу, только если надо добивать нулями в конце, что б ровненько в размер укладывалось, иначе ACCESS_VIOLATION и досвидос
источник

NT

Nikita Tsukanov in pro.net
EgorBo
Vector256<byte>[int.MaxValue]
толку с него
источник

NT

Nikita Tsukanov in pro.net
его в Array.Sort не скормишь
источник

NT

Nikita Tsukanov in pro.net
(сортировка по первым 16 байтам)
источник

E

EgorBo in pro.net
сортируй чанками
источник

E

EgorBo in pro.net
потом через бинарный поиск мерж
источник

NT

Nikita Tsukanov in pro.net
я пробовал
источник

NT

Nikita Tsukanov in pro.net
медленно
источник

NT

Nikita Tsukanov in pro.net
скопипащенный и переделанный на T* Array.Sort был в разы быстрее
источник

NT

Nikita Tsukanov in pro.net
оно оказало даже быстрее чем "параллельно отсортировать чанки в несколько потоков и сделать мерж"
источник

E

EgorBo in pro.net
источник

E

EgorBo in pro.net
@kekekeks вообще ил опкоды для лонговых индексов есть
источник

E

EgorBo in pro.net
ldelem.i8
источник

E

EgorBo in pro.net
а не, это тип элемента)
источник

A

Aloraman in pro.net
А по этим 80 гигам можно несколько раз пробежать?
Прочитать первый раз, набрать статистику сколько раз какой префикс 1-2 байта встречается, зааллоцировать 256/65536 массивов под них и заполнить, прочитав  второй раз? Потом параллельно просортировать
Правда тут уж недалеко и до написания своего B+/B*, проще сразу в натив уходить
источник