LINUX.ORG.RU

Ответ на: комментарий от dave

чтобы в кеш влезали

Не все так просто ...
Вы все правильно сделаете /для эффективного использования кеша/, но
многие процессы ... также хотят использовать кеш, а он увы не резиновый.

anonymous ()
Ответ на: комментарий от dave

Для вставки и удаления. Может, для обхода. Чтобы была локальность данных.

Ты заменил один базворд на другой - это не ответ. Это тебе никак не поможет при вставке/удалении - наоборот всё поломает. Никакая локальность ничего не даёт.

Ты вообще понимаешь для чего нужен кеш и как он работает? Ну вот изучи. Кеш имеет смысл только тогда, когда ты несколько раз обращаешься к одним и тем же данным. Если данные влезают в кеш - кеш работает как быстрая память. Не влезают - кеш только мешает. Никаких иных вариантов нет.

Те причины по которым arraylist имеет смысл никак не связаны с кешем. Вернее связаны, но крайне косвенно. Данные читаются всегда из кеша, а в кеш из памяти. Читаются кешлайнами, т.е. блоками. Если твоя нода меньше этого блока и они равномерно распределены по памяти - ты читаешь не по одной, а по несколько нод, либо ноду + мусор.

Именно с этим и борется arraylist, но это работает только на мелких нодах. Именно поэтому данная проблема может быть так же решена инлайном данных в ноду, если их, опять же, достаточно.

И абсолютно насрать какие там у тебя массивы и в какой кеш они влезают/не влезают. Кеш тут никак не участвует, как и какая-то мусорная локальность.

Так же, ещё одно направление профита от массива - это его больший потенциал. Но это так же никак не связано с локальностью. Массив обладает возможностью к параллелизации вычислений, когда как список говна нет.

anonymous ()
Ответ на: комментарий от dave

Ну да, я предполагал ответ. Но это не было моей мотивацией. Мне было отчасти интересно - что сподвигает на подобные тезисы адептов. А в основном я просто ответил за тебя. Причины очевидны - в среде будет меньше глупостей и больше адекватных мнений/ответов.

Докапываться до тебя/кого-либо ещё мне ненужно и неинтересно.

anonymous ()
Ответ на: комментарий от anonymous

Мне кажется, что ты потерял нить разговора и ничего не понял, решив в очередной раз блеснуть своими познаниями в кешах здесь на ЛОРе, но объяснять мне тебе, тетрарх, влом.

dave ★★★★★ ()
Ответ на: комментарий от dave

Можно сделать двусвязный список, соединяющий маленькие массивы (чтобы в кеш влезали), а снаружи будет выглядеть как обычный двусвязный список.

В PHP, Python, ... некоторые объекты /для эффективности/ совмещают в себе функциональность Array, List, Hash ...

Супер интересная и полезная тема для обсуждения.

PS: «У кого что болит, тот о том и говорит».

Владимир

anonymous ()
Ответ на: комментарий от anonymous

Никакая локальность ничего не даёт.

За пределами кэша жизнь тоже есть. В DRAM есть row buffer, чтение из другой строки DRAM примерно в три раза медленнее, чем чтение из той-же строки.

red75prim ★★ ()
Ответ на: комментарий от vertexua

Предлагаешь просто дергать аллокатор миллион раз?

Если действительно нужен миллион объектов, почему бы и нет? Кстати, не я первый сказал «вектор». Скажи какой-то растаман выше по треду «выделять память блоками по X элементов», я бы и не стриггерился. Но растаманы только ls раскрашивать горазды.

kawaii_neko ★★★ ()
Последнее исправление: kawaii_neko (всего исправлений: 1)
Ответ на: комментарий от red75prim

Связанный список - очень нишевая штука. Если что, [inline]std::unordered_map[/inline] – это chained hash map. Внезапно связанные списки перестали быть нишевыми?

Ах да, а LRU кеши с обновляемым временем жизни при доступе к элементу ты предлагаешь поверх сбалансированных деревьев/heap-ов строить?

kawaii_neko ★★★ ()
Ответ на: комментарий от kawaii_neko

Что-то в слове «нишевая» не понятно? Оптимальный режим работы хэш-мапы - без коллизий. Ниша - низкое количество элементов в списке, быстрая вставка и независимость размера head от количества элементов списка.

Я предлагаю не пихать списки туда, где они не нужны. И не делать трагедию из необходимости писать unsafe в некоторых случаях.

red75prim ★★ ()
Ответ на: комментарий от red75prim

Что-то в слове «нишевая» не понятно? Оптимальный режим работы хэш-мапы - без коллизий. Нет. В некоторых случаях да, но далеко не во всех и даже не в большем случае.

Ниша - низкое количество элементов в списке А это полная чушь. Именно при низком кол-ве элементов список имеет мало смысла.

Я предлагаю не пихать списки туда, где они не нужны. Ты ничего не предлагаешь - ты сектант, который оправдываешься.

Это вообще гениальный план от сектантов. Мы ничего не можем и будем кукарекать о том, что всё что не можем ненужно. Ключевое свойство нормального языка, лоулевел языка - это возможность делать всё. Тебе, рядового нулёвого сектанта не должно это волновать. Ты ничего не знаешь и не понимаешь и до того момента как не начнёшь понимать - твои рассуждения не стоят ничего.

Хотя тут тебя ждёт типичный парадокс бездарности. Т.е. то, почему недоязычки всегда будут в говне. Ведь если мы предположим, что ты сможешь в матчасть и начнёшь что-то понимать, то ты уйдёшь из секты. Т.е. ты сейчас в секте потому, что не можешь и это для тебя является оправданием и заменой мозга, заменой конкурентной среды на среду идиотов.

Именно поэтому невозможна ситуация роста для секты. Рост секты - это рост адептов, но рост адептов выводит их из запоя/секты.

И не делать трагедию из необходимости писать unsafe в некоторых случаях. Ты попросту не можешь ничего и никакие unsafe тебе не помогут. К тому же - любое unsafe тут же множит на ноль методичку.

anonymous ()
Ответ на: комментарий от kawaii_neko

На самом деле раст-сектант случайно задел фундаментальную дыру в раст-мусоре. На самом деле список ненужен сам по себе. Список не является хранилищем данным, в отличии от массива.

Правильное использование списков - это организация отношения/связей между элементами данных. Именно на этих принципах построены всякие иерархические и не только структуры данных.

Именно поэтому под списком может что угодно. И там должно быть что угодно и поэтому завывания сектантов про список поверх массива имеют смысл. Это так и происходит за пределами помойки.

Но на самом деле сектанты врут. Они используют это не потому, что это так нужно. Всё это мусорное блеяние. На самом деле список над массивом и прочие истории - они просто позволяют обходить ограничения мусорного языка.

Потому как никакого борроу-чекера нету. И как только сектант сталкивается с проблемой - его первым же решением будет обход от ограничений вызванных этим файковым чекером. Тоже самое происходит и в контексте ГЦ, хотя говнораст как недоязычок семантически является недоязычком с rcgc.

И именно на это нужно давить. Давить на то, что адепт не пытается сделать список на массиве потому, что это «лучше». Нет. Он пытается его сделать так потому, что индексы не чекает фейковый чекер.

anonymous ()
Ответ на: комментарий от kawaii_neko

А потом этот вектор, скажем, на пару десятков миллионов элементов приходится ресайзить

и что? В плюсах есть std::deque с чанками фиксированного размера и доступом по индексу.

Правда не уверен, что растовый VecDeque - это то же самое, но в любом случае, это решаемая проблема.

anonymous ()
Ответ на: комментарий от anonymous

Что же вы, сектанты, насколько альтернативно одарённые все. Какая разница что там у тебя есть? Очевидно, что украсть можно что угодно, обмазаться unsafe можно когда угодно. Проблема не в этом, маня.

А проблема в том, хотя это для тебя слишком сложно, но я тебе помогу. Нормальные языки используются именно что для реализации, в том числе, и структур данных. Зачастую уникальных. И именно об этом идёт речь.

Что недоязычок декларирует отсутствие проблем при реализации и наличие профитов. Но что же ты, сектант, предлагаешь? Каким образом сектантские поделки и наличие какого-то готового говна в говнолибе что-то меняет?

Оно будет менять только тогда, когда реализовано это по методичке, но оно не реализовано по методичке. Т.е. наличие готового говна, наличие ворованного, наличие возможности закостылить и пожрать говна(хотя почему возможности - этим сектанты и занимаются) ни о чём не говорит.

Я, конечно, понимаю что такой ситуации с недоязычками и адептам никогда не будет, но предположим. Вот завтра ты пойдёшь пилить списки/брёвна, ещё какую херню для жабаскрипта, ллвм"а, будешь создавать аллокатор. Хотя ты, конечно же, это всё украдёшь, а не будешь писать.

И вот как тебе поможет наличие готового говна? А никак. Очевидно, что сектанты во имя веры готовы жрать говно. Но ты ведь не сектант - у тебя есть конкретные критерии, которых нету у сектантов.

И всё, всё поломалось.

anonymous ()
Ответ на: комментарий от red75prim

Что-то в слове «нишевая» не понятно?

Мне непонятно, как можно называть «нишевым» то, что встречается на каждом шагу. Как ты думаешь, в dom-е дочерние элементы на одном уровне в вектор упакованы или в двухсвязанный список?

И не делать трагедию из необходимости писать unsafe в некоторых случаях

И не забывать в означенных случаях прекращать кукарекать на всю округу, какие мы безопасные и какая у нас офигенная модель лайфтаймов, которой можно описать из землю, и небо, и аллаха.

kawaii_neko ★★★ ()
Ответ на: комментарий от kawaii_neko

какая у нас офигенная модель лайфтаймов, которой можно описать из землю, и небо, и аллаха

об этом больше всех орут хейтеры вроде тебя. Сами себе придумывают идиотские аргументы, сами же их героически опровергают. А потом сами же орут про пропаганду (см. царь)

anonymous ()
Ответ на: комментарий от anonymous

об этом больше всех орут хейтеры вроде тебя. Сами себе придумывают идиотские аргументы, сами же их героически опровергают. А потом сами же орут про пропаганду (см. царь)

И такие странные личности убивают на корню всю возможность конструктивного диалога. В старом и еще более старом ЛОРе люди часто дискутировали. Такого уже давно нет. Да и большинство разбежалось. Очень многие - в телеграмм.

dave ★★★★★ ()
Последнее исправление: dave (всего исправлений: 1)
Ответ на: комментарий от dave

Правильно. Раньше ты, бездарность, сралась с бездарностями. Это норма для идиотов. А потом бам ты встретился с реальностью и с теми, кто может валять тебя в дерьме. И теперь сидя в дерьме ты рыдаешь и мечтаешь о том, что-бы было как раньше. Но как раньше не будет.

Всё больше и больше людей будут учиться в мою, либо другую сильную аргументацию. И скоро ты забьёшься в угол и будешь дрожать не только от меня в треде, но в целом.

anonymous ()
Ответ на: комментарий от dave

Типичный клоун. Начал что-то кукарекать - обделался. Продолжил кукарекать - обделался. В конечном итоге совсем сломался и начал блеять несвязную херню. Я понимаю, что ты боишься, убогий, но зачем это так явно декларировать?

Весь это всё нужно. Если долго блеять «уходите свидетельства моей бездарности и их источник», то они действительно уйдут и о твоей бездарности никто не узнает. Нелепость.

anonymous ()
Ответ на: комментарий от anonymous

Да и стиль лексики «пациента» отражается на стиле диалога многих из форумчан.
Замечали когда нибудь как не матюкающийся иногда матюкается среди матершинников.
Гадость бывает очень - ЗАРАЗНА.

Владимир

anonymous ()
Ответ на: комментарий от anonymous

Они постоянно поступают, клоун. К тому же, ты опять всё перепутал. Я редко когда критикую языки программирования. Я в основном критику мусор бездарный, который не является ЯП по определению. Там нечего улучшать - это тупиковая ветвь, существующая лишь для поддержания мечтаний бездарностей и развода их/ими на бабки.

anonymous ()