себя будут чувствовать кэш линии? Я правильно понимаю, что там будет 100% кэш мис?
не правильно, промах в кеш будет, если размер данных превышает размер кеша, что не есть гарантированно, может, влезет, это зависит от данных
Так вопрос - какие данные оно в кэш поместит? Инкрементально читаемому адресу же
насколько я понимаю устройство ЦПУ Intel, то в кеш помещаются абсолютно все данные, которые были считаны из общей памяти, возможно при поддержке специального оптимизирующего компилятора intel, но смысл кэша в этом, если вы работаете с регистрами общего назначения и обращаетесь к регистрам считывания данных из общей памяти, процессор должен подгружать эти данные из общей памяти в кэш, для последующей вытесняющей обработки, наверное, они устаревают, и есть ограничение на сегменты памяти, одновременно подсасываемые в кеш, но как я понимаю, оно довольно большое, и там достаточно много можно разместить данных, вплоть до ядра ОС, или микроядра, какого-то
Конкретно в этом случае на это никак не повлиять, будут промахи или нет. В rdi (если речь о x86) придет указатель, дальше уже дело техники. Можно и на avx2 кстати соптимизировать, на асме или интринсиками или можно оставить это оптимизирующему компилятору. Тут больше вопрос как поменьше память трогать (l1d если быть точнее). Можно по идее сразу начать с заполнения выходной строки с конца.
со строками просто двигать два указателя до совпадения с начала и с конца и менять местами значения указателей
А память запросить всю что есть? ) По уму кажется, что тоже без реаллокации не обойтись.
Обсуждают сегодня