Romɑn
пару недель назад в викли было
Romɑn
Это и пугает
это в дотнете! не в сишарпе! пугаться не надо, ребята из платформы, обычно адекватны
Anonymous
Кстати линкедлист массивов длинной, скажем, в 8 это пхуенно решает все проблемы.
Anonymous
И кеширования
Anonymous
Тоже
Ayrat
задолбали читать исходники и обыгрывать меня
Так. я ошибался насчёт знания линкед листом своей длины. Она калькулируется вызов https://github.com/dotnet/fsharp/blob/4ce381be33818c148976f393c50050a1664a061e/src/fsharp/FSharp.Core/prim-types.fs#L3733 реализация https://github.com/dotnet/fsharp/blob/4ce381be33818c148976f393c50050a1664a061e/src/fsharp/FSharp.Core/prim-types.fs#L3694
Ayrat
тем более лист-то ИММУТАБЕЛЬНЫЙ
Ayrat
на создании каунтер заполнил и забыл
Romɑn
так как компилятор на листах мб и ускорит работу
Ilya
Но мутабельный!
Ilya
Второй Илья появился и скрылся.
Anonymous
А List<T> знает!
Так он же поверх массива
Anonymous
Хули ему не знать
Anonymous
Там нечего знать
Ilya
Так он же поверх массива
У массива сapacity или как там его.
Ilya
Ну то есть Length массива - это Capacity листа.
Anonymous
У массива сapacity или как там его.
Та то искусственно. Массивы работают с помощью «арифметики» ссылок. Ссылки ж фиксированной длины. Все просто.
Anonymous
Так-то и чужую память можно захватить если не следить за индексом.
Ayrat
Руки не дошли видимо
ну не всё так просто. точнее вообще не просто
Ilya
какой пиздец
А что не так?🤔
Ayrat
я тут подумал что каждая нода должна знать свою длину
Ayrat
Это просто
это плюс одно поле
Ayrat
которое интернал должно быть
Ayrat
в листе на тыщу элементов это уже солидно
Ilya
чтобы ПОТОМ быстро читать
Чтобы памяти меньше занимать
Ayrat
А что не так?🤔
ну +1 ресайз
Ayrat
Чтобы памяти меньше занимать
это спорно учитывая что линкед лист в любой пейдж поместится
Ayrat
в любую дырку
Ayrat
во все дырки точнее
Ilya
ну +1 ресайз
Тебе же все равно надо массив вернуть, для tolist ресайза не будет
Ayrat
Тебе же все равно надо массив вернуть, для tolist ресайза не будет
тут, я думаю, ограничение апи самого linqtodb потому что они ожидают хендлер на query.ToEachAsync
Ilya
это спорно учитывая что линкед лист в любой пейдж поместится
Линукс лист даст большой оверхед на ноды для больших списков
Ayrat
Линукс лист даст большой оверхед на ноды для больших списков
для больших массивов мы получим оверхед на растягивание хипа т.к. он никуда не помещается
Ayrat
шах и мат
Ilya
Воскресенье закончилось.
Anonymous
в листе на тыщу элементов это уже солидно
Если честно, то массив на тысячу элементов заучит гораздо сложнее с учетом дефрагментация
Ilya
Копирование супер быстрое
Ayrat
ну короче, длину надо в ноды добавлять, а это очень и очень сложно. вот куда здесь добавить длину https://github.com/dotnet/fsharp/blob/4ce381be33818c148976f393c50050a1664a061e/src/fsharp/FSharp.Core/prim-types.fs#L3586-L3588
Ilya
Слишком быстрое, поэтому линкед структуры данных не используются практически нигде
Ayrat
весь лист в 3 строчки описывается
Ayrat
вот были бы завтипы
Anonymous
Да ладно, 8 КБ не найдётся?
Если ты много таких аллокаций делаешь, хип дробится быстро
Ilya
точнее практически везде где есть шедулеры
Там это оправдано спецификой, в общем случае нужны обычные линейные структуры
Ayrat
я согласен если чо
Ayrat
я за массивы по дефолту
Ilya
я за массивы по дефолту
Для короткоживущих объектов лист эффективнее
Ilya
Оппоненты поменяли стороны...
Ayrat
Он просто забыл в каком чате находится
Ayrat
и что тут список другой
Ilya
Давайте теперь Айрат будет защищать сишарп, а Илья - фшарп.
Ilya
и что тут список другой
Что с вашим списком?!
Ilya
(придётся забанить Айрата)
Ilya
Он что линкед лист?
Ayrat
Что с вашим списком?!
он список, а с вашим что???
Ayrat
Он что линкед лист?
а ваш - массив!!!1
Ilya
А ваш лист у нас ResizeArray.
Ilya
а ваш - массив!!!1
А как так вышло?
Ilya
Отвратительно длинное название, на мой взгляд.
Ilya
А ваш лист у нас ResizeArray.
Ресайзить самому хоть не надо?
Ayrat
А как так вышло?
ну у джавы недоспиздили. У них ArrayList, но нельзя было как у джавы пиздить, поэтому сделали List
Ilya
Ресайзить самому хоть не надо?
Да нет, это алиас на Generic.List.
Ayrat
Дак есть ведь arraylist в дотнете...
так то старая, не дженерик версия
Ilya
так то старая, не дженерик версия
Должны же быть какие то недостатки