|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
вот, например: Код: plaintext 1. 2. 3. 4.
имеем vector<s>, который итерируем, и для каждого i будет своё a,b,c, но в целом, для каждого i они константа (их только один раз надо посчитать). А вот итераций по этому вектору будет много. Но если их зафиксировать, то они займут кэш. Вопрос - делать много итераций по фиксированным значениям (сохранить их в структуре) ИЛИ каждый раз считать заново? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 04:06 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
По-хорошему просто запусти оба варианта и сравни. Получение данных из кэша быстрее примерно раза в 2 чем из памяти, т.е. времени на расчет остается немного. Возможно какие-то примитивные вычисления окажутся быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 07:14 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Мало исходных данных. Если f(a,b,c) простая функция и ее расчет занимает несколько тактов - то можно не хранить. Если у тебя под капотом что-то вроде .....эээ функции Аккермана - то лучше рассчитывать и хранить результат. Называется - мемоизация. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 08:46 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
да не, там расчёты простые. Dima T Получение данных из кэша быстрее примерно раза в 2 чем из памяти 107 раз было... L1 vs память. 50 раз - L2 vs память. А вот если каждый раз считать, то там расчёты a,b,c будут ложиться в отдельную struct, значит в кеше будет находиться итерируемый вектор + эта struct. И на всё время итерации по вектору они будут лежать в кеше и быстро-быстро считаться? Т.е. там вообще в память заходов не будет? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 09:17 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Алексей Роза 2020, надо корректнее выражаться, что вы понимаете под кешем и каким в вашем случае, последовательный доступ естественно будет самый быстрый ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 11:31 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Какой тут int? Ну допустим 4х байтный. Я перепишу структуру по другому для удобства подсчета. Код: plaintext 1. 2. 3. 4. 5. 6.
В одной кеш-линии 64 байта. Тоесть 4 таких структуры лягут в 1 кеш-линию при условии что vector<s> аллоцирует их по границе кратной 64 байтам. При неудачном раскладе в кеш-линию лягут 3 структуры и два "хвостика" справа и слева. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 11:45 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
mayton, и что именно это значит? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 12:20 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Что значат "хвостики"? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 12:23 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
вот это мне как поможет? mayton В одной кеш-линии 64 байта. Тоесть 4 таких структуры лягут в 1 кеш-линию при условии что vector<s> аллоцирует их по границе кратной 64 байтам. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 12:48 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Алексей Роза 2020, ну проверь физические адреса где лежат твои данные. Тыж сишник. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 12:51 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Алексей Роза 2020Вопрос - делать много итераций по фиксированным значениям (сохранить их в структуре) ИЛИ каждый раз считать заново? Ответ зависит от того как часто тебе нужны значения и что делают итерации. Например, если итерации читают fixed, а не a,b,c, то эти a,b,c надо просто из структуры выкинуть и оставить вектор fixed. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 12:52 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
каждую итерацию проверяется fixed, если 1, то continue (для этого i расчёты НЕ нужны). А если 0, то эти a,b,c отправляются в другую ф-ю, где с ними делают много всяких расчётов. Т.е. в каждой итерации этот s обычно едет куда-то далее и там считается. Тут 2 варианта, надо разобраться: На каждой итерации происходит считывание 4х s подряд (кеширование вперёд заранее посчитанных a,b,c). И если вот в этом и есть суть кеширования (что он потом не будет за ними ходить), то тогда он эти 4 s посчитает в другой ф-и быстро и сразу. Но кеш заполнится... Но и хер с ним. Я же вот в данный конкретный момент занят именно этими расчётами. Я именно этот вектор считаю, он мне и нужен в кеше, а для других дел кеш очистится после расчётов. Так что вроде всё ок? ЛИБО я эти a,b,c буду считать каждый раз снова и снова (а там может быть миллион итераций в итоге), но зато кеш типа сэкономлю... Короче пока получается, что лучше посчитать заранее... mayton Алексей Роза 2020, ну проверь физические адреса где лежат твои данные. Тыж сишник. что именно проверить и зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 13:40 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Алексей Роза 2020, Если массив многократно проходится, то сделайте вначале его копию с рассчитанными значениями и работайте потом с копией. Если конечно это не тот знаменитый массив в триллион записей )) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 13:42 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Алексей Роза 2020 mayton Алексей Роза 2020, ну проверь физические адреса где лежат твои данные. Тыж сишник. что именно проверить и зачем? Я уже писал кажется. Попадает ли 4 твоих s-объекта в 1 кеш-линию. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 13:44 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Алексей Роза 2020эти a,b,c отправляются в другую ф-ю Всё. Это место ставит жирный крест на оптимизации с помощью кэша процессора. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 13:54 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Алексей Роза 2020эти a,b,c отправляются в другую ф-ю Всё. Это место ставит жирный крест на оптимизации с помощью кэша процессора. Мне в топике кажется что мы заняты оптимизацией того что и так хорошо работает. Было-бы интересно посмотреть Алексеевский софт под профилированием и понять что на самом деле расчет это загадочной функции f(a,b,c) действительно сильно оказывает влияние на результат и мемоизация необходима. К сожалению Леша такой партизан что ничего не расскажет ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 14:00 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Алексей Роза 2020 каждую итерацию проверяется fixed, если 1, то continue (для этого i расчёты НЕ нужны). А если 0, то эти a,b,c отправляются в другую ф-ю, где с ними делают много всяких расчётов. Т.е. в каждой итерации этот s обычно едет куда-то далее и там считается. Тут 2 варианта, надо разобраться: Есть третий вариант: сделать два массива, в первый fixed, во второй a,b,c. С точки зрения расхода памяти ничего не меняется, но повышается вероятность попадания в кэш массива fixed. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 14:05 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Алексей Роза 2020эти a,b,c отправляются в другую ф-ю Всё. Это место ставит жирный крест на оптимизации с помощью кэша процессора. Компилятор может заинлайнить функцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 14:11 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Dima TКомпилятор может В таком случае пусть он и обо всей остальной оптимизации думает. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 14:22 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
mayton Мне в топике кажется что мы заняты оптимизацией того что и так хорошо работает. Похоже на то. ИМХО смысла в этом топике нет особого, зачем сферические кэши обсуждать когда можно потестить вживую и решать как удобнее, переписать код с одного способа на другой много времени не потребуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 14:25 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Давайте пре-внесем в топик немного материализма. Пускай функция выглядит так. Код: plaintext 1. 2. 3.
Почему так? Я просто акцентирую внимание на то что она - детерминистическая и не оказывает влияния на среду. Она не меняет никакоую ячейку памяти. Потому что если меняет - это усложняет оптимизации. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 14:25 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
maytonДавайте пре-внесем в топик немного материализма. Привносить материализм в Розовые топики бесполезно по определению. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 14:26 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Согласен. Я поднимал свой топик https://www.sql.ru/forum/1327486/predvaritelnye-slushanya-po-memory-cache-part-2 на аналогичную тему но хотел пре-внести опенсорцные алгоритмы и структуры данных дабы каждый интересующийся сумел это скомпилить и что-то посмотреть и проверить. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 14:29 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
а тогда как правильно это сделать, чтобы выжать максимум из кэша? f(a,b,c), в т.ч., делает сравнение и мат.операции с данными из других векторов а если векторы небольшие и все помещаются в L1 ? Dima T mayton Мне в топике кажется что мы заняты оптимизацией того что и так хорошо работает. Похоже на то. ИМХО смысла в этом топике нет особого, зачем сферические кэши обсуждать когда можно потестить вживую и решать как удобнее, переписать код с одного способа на другой много времени не потребуется. надо понимать, как оно работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 15:13 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Смотри. Я рассуждаю так. У нас нет регулятора который говорит системе быстрее-медленее. Есть набор гипотез которые надо проверять практически. Например. Моя гипотеза - Выровняй структуры данных на кешлинию. И уменьшишь количество повторных чтений из памяти хвостов структур. Но от тебяж никакого фидбека нет. Ты попробовал? Что-то получилось? Как-будто сидишь и ждешь что мы за тебя придумаем волшебный набор рецептов. Демотивирует твоё отношение. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 15:18 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
mayton Выровняй структуры данных на кешлинию. а чего ты от этого ждёшь, какой результат? это первое что надо делать с любой структурой - данные в ней выровнять. И чем меньше структура, тем лучше. Это аксиомы. А у меня там вообще ushort. И где я тут "волшебный набор рецептов" спрашивал? Я задаю конкретные вопросы, а ты льёшь воду. Демотивирует твоя вода. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 15:24 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
maytonТы попробовал? Что-то получилось? А зачем? Он вбросил, а там хоть не рассветай. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 15:27 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Алексей Роза 2020Я задаю конкретные вопросы На которые даёт конкретные ответы Intel Advisor. Ставь и смотри. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 15:31 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Алексей Роза 2020 mayton Выровняй структуры данных на кешлинию. а чего ты от этого ждёшь, какой результат? это первое что надо делать с любой структурой - данные в ней выровнять. И чем меньше структура, тем лучше. Это аксиомы. А у меня там вообще ushort. И где я тут "волшебный набор рецептов" спрашивал? Я задаю конкретные вопросы, а ты льёшь воду. Демотивирует твоя вода. Мне кажется что я где-то был непонятен. Я говорю. Нет. Я утверждаю! std::vector аллоцирует старт массива не по границе кеш-линии. И я тебе, дорогой топик стартер даю первый совет. Иди и проверь. Где ты выделяешь первый объект? Он кратный кеш-линии или нет? У тебя размер объекта - хороший. Он - кратный кеш-линии. Осталось просто проверить offset всей коллекции. Чтоб гарантировать что мы не разрезаем 1-й и 4-й структурный объект по границе кеш-линии. Но почему-то этот простой вопрос который просто требует публикации физического адреса ссылки у тебя вызвал упорное молчание и нежелание ничего делать! Тогда зачем тебе топик?! Алексей?! Зачем тебе sql.ru? Если мой рецепт плох или неверен - так ты скажи. Он плох по тому-то и тому-то. Но тыж просто сидишь и хочешь что-то высидеть. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 15:35 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Алексей Роза 2020 mayton Выровняй структуры данных на кешлинию. а чего ты от этого ждёшь, какой результат? это первое что надо делать с любой структурой - данные в ней выровнять. И чем меньше структура, тем лучше. Это аксиомы. Это разные вещи. Для уменьшения размера достаточно #pragma pack(push, 1) , а кэшлиния это совсем о другом. Загугли хотя бы что такое кэшлиния, раз уж кэшем интересуешься. Можешь мой топик почитать, правда там я немного другое изучал. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 15:41 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Будет второй вариант. Задействовать 2-потока алгоритм таким образом чтоб L1 кеши не пересекались по данным. L3 - пускай пересекается это норм. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 16:31 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
лять ещё один, чё за вёдра с водой опять полились, нормально же общались! кэш-линия для передачи байт из памяти в кэш и обратно, чё вы там гуглить собрались, это известно на второй неделе в C/C++ Это тебе надо гуглить и по рукам надавать за советы про #pragma pack. Мало того, что это костыль, так ещё если будет atomic, то могут возникнуть ТОРМОЗА внезапно, ибо если atomic распадается на 2 линии, то становится ОЧЕНЬ медленным (разница до 300 раз!). Dima T кэшлиния это совсем о другом о каком ещё нахрен "другом"?! Он говорит про то что все вокруг дебилы и не выравнивают структуры, а он самый умный и на мой вопрос "как именно отработает кэш в данном случае, где мы шлём в другую ф-ю бла-бла" он мне рассказывает про то, чтобы я срочно проверил, а не передам ли я по кэш-линии 62 байта вместо 64х... и вот это ответ на мой вопрос. Я про это спрашивал? Да мне вообще насрать на эти 2 байта. И где тут про "другое", а не про кэш-линии? Человек с 15000 сообщениями, ты потрясающий! (с) Dimitry Sibiryakov А зачем? Он вбросил, а там хоть не рассветай. Это у тебя регулярные неконтролируемые вбросы в моих темах. Неконтролируемые и неудержимые. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 16:43 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Алексей Роза 2020 о каком ещё нахрен "другом"?! Успокойся и не хами, или еще раз забанят. Не хочешь понимать о чем тебе говорят - твое право, но тут не школа, учить тут никто не обязан. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 17:28 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Dima T Алексей Роза 2020 о каком ещё нахрен "другом"?! Успокойся и не хами, или еще раз забанят. Не хочешь понимать о чем тебе говорят - твое право, но тут не школа, учить тут никто не обязан. Конечно забанят, чему ещё ты можешь научить, кроме как цепляться к словам и сливаться? Я в инете с 95-го года. И насмотрел как на баны, так и на форумных флудерастов. Напугал ежа голой жопой Dima T учить тут никто не обязан А читать то хотя бы обязан? Вопрос стоял "надо разобраться". А ты пришёл в тему, где жуют детали, в которых ты не спец, и умничаешь за мой счёт. Вы два Димы друг друга стоите, могли бы игнорировать мои темы и экономить нервы и время. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 03:48 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Алексей Роза 2020 Вопрос стоял "надо разобраться" ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 04:55 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky Алексей Роза 2020, Если массив многократно проходится, то сделайте вначале его копию с рассчитанными значениями и работайте потом с копией. Если конечно это не тот знаменитый массив в триллион записей )) по утру таки вспомнил, о чём речь ) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Локальные переменные всегда наилучший вариант, чтобы смежные данные попали в один кэш. Т.е. наилучшим вариантом будет в отдельной ф-и собрать всё что надо локально и просчитать весь вектор на месте. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 06:01 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Алексей Роза 2020 А читать то хотя бы обязан? Вопрос стоял "надо разобраться". А ты пришёл в тему, где жуют детали, в которых ты не спец, и умничаешь за мой счёт. Вы два Димы друг друга стоите, могли бы игнорировать мои темы и экономить нервы и время. Тебе подсказывают направление в котором разбираться, но похоже тебе это не интересно. Наверно ты прав, не стоит тратить на тебя время. На прощанье, если ты до сюда дочитал: кэшлиния это не любые 64 байта, а только те, адрес которых кратен 64-м (0...63, 64...127 и т.д.), поэтому структура например в 16 байт легко может оказаться в двух соседних кэшлиниях. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 07:09 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Dima T, да, ты прав, я темы создают не чтобы проблемы решать и развиваться, а специально чтобы вас всех тут собрать... дабы вы ответили за свои прегрешения (с) Таки зачем кратен? Можно и 60 байтов передать... и 2. Можно передавать много структур и да, они могут порваться. Плевать. Не тот случай. А если ты передаёшь адрес ячейки из массива, то в кэш-линию попадут все последующие/соседние ячейки, которые туда влезут. Такое упреждающее последовательное кэширование (предсказуемость рулит). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 10:45 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Пригрешения? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 11:32 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Алексей Роза 2020Локальные переменные всегда наилучший вариант, чтобы смежные данные попали в один кэш. Вот только попадание в один кэш это не всегда лучший вариант. Требуется ещё одна мелочь: не допускать попеременного чтения и записи в одну линию. То есть из одной линии - только читать, а в другую - только писать. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 13:09 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Вот только попадание в один кэш это не всегда лучший вариант. Требуется ещё одна мелочь: не допускать попеременного чтения и записи в одну линию. То есть из одной линии - только читать, а в другую - только писать. чё-то я не припомню таких должностных обязанностей в уставе программиста ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 00:35 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Алексей Роза 2020 Dimitry Sibiryakov Вот только попадание в один кэш это не всегда лучший вариант. Требуется ещё одна мелочь: не допускать попеременного чтения и записи в одну линию. То есть из одной линии - только читать, а в другую - только писать. чё-то я не припомню таких должностных обязанностей в уставе программиста Тебе помогают по топику а ты - фыркаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 08:50 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
во1, если я фыркаю, значит так нужно. Каким боком тебя это касается? во2, я интересуюсь подробностями, а не фыркаю. в3, ты уже не первый раз пытаешься на меня повесить какие-то свои домыслы. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 10:05 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
(поднимая руки) Ну конешно меня, модератора С++ не касается. Окей я больше этот топик не буду комментировать. Развлекайся. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 10:36 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
мало называться модератором, взял бы да объяснил, что за Dimitry Sibiryakov не допускать попеременного чтения и записи в одну линию нормально я спросил без фырканий, нечего выдумывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 11:17 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Смотри внимательно что я квотировал. Растеряешь последних помогающих. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 11:49 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
ты свои последние 5 сообщений прочитай, помощник Я прекрасно вижу, что ты пишешь, не волнуйся. Проблема вовсе не в этом. а вот это ты мне зачем написал, не расскажешь? mayton У тебя размер объекта - хороший. Он - кратный кеш-линии. Осталось просто проверить offset всей коллекции. Чтоб гарантировать что мы не разрезаем 1-й и 4-й структурный объект по границе кеш-линии. Анатолий Московский написал хороший совет. Dima T и Дима Сибиряк дали пару раз инфу, но какими-то кусками, будто всей картины сами не видят. А потом скатились во флуд и оффтоп. Вот и вся помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 12:34 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Хочешь чтобы я участвовал? У меня - ощущение зыбкого кошмара. Ты - вроде - бы знаком с системным программированием. И когда я и Дима тебе говорим что аллокация памяти (malloc/new) может идти по границе параграфа (16 байт) а нам этого недостаточно. Нам нужна аллокация по границе кеш-линии (64 байт) я надеюсь что ты меня понял как художник художника. Или как инженер инженера. И когда я тебя попросил сходить и посмотреть на физические адреса - я ожидал ответа. Дескыт да. Вектор аллоцироан как надо. Леша? Получилось? Или нет? Ты в ответ завис. И переключился на другое. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 12:40 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Алексей Роза 2020взял бы да объяснил, что за Какое слово тебе непонятно? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 12:43 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
mayton И когда я тебя попросил сходить и посмотреть на физические адреса - я ожидал ответа. Дескыт да. Вектор аллоцироан как надо. адрес первого: 7eb0 последнего: 8096 итого: 486 байт / 81 объект = 6 байт на штуку (там 3 шорта) 6 байт не влезут в кэш-линию, будет хвост в другой но для этого не нужно знать адреса. А для чего нужно? Dimitry Sibiryakov Алексей Роза 2020взял бы да объяснил, что за Какое слово тебе непонятно? я никогда не слышал об этой заморочке ни у Чендлера, ни у Мейерса, ни у Александреску. и как вообще этим можно управлять? Если тред один, то никак. Если два, то он сам разберётся, по-видимому. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 13:11 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Алексей Роза 2020и как вообще этим можно управлять? Повторяю медленно: читаемые данные - в одну линию, записываемые - в другую. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 13:22 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Алексей Роза 2020я никогда не слышал об этой заморочке ни у Чендлера, ни у Мейерса, ни у Александреску. Значит стоит обратиться к первоисточникам: https://software.intel.com/content/www/us/en/develop/articles/how-memory-is-accessed.html Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 13:32 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
про Data Driven Development TCу уже советовали почитать? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 16:05 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Алексей Роза 2020я никогда не слышал об этой заморочке ни у Чендлера, ни у Мейерса, ни у Александреску. Значит стоит обратиться к первоисточникам: https://software.intel.com/content/www/us/en/develop/articles/how-memory-is-accessed.html интересно, спасибо vtune юзает кто? звучит так, будто "нахрена все эти заморочки с сабжем" а для AMD что? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 13:59 |
|
как правильно хранить значения в объекте с т.з. кеша
|
|||
---|---|---|---|
#18+
Алексей Роза 2020, ты посмотри образцы репортов которые выдает vtune. Их можно найти в презентациях и доках. Если они для тебя понятны. И ты знаешь что делать дальше - то welcome. Покупай. Но у тебя КМК еще нет никаких expectations по этому поводу. Тоесть ты еще сам не знаешь что хочешь получить от этой утилиты. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 17:39 |
|
|
start [/forum/topic.php?all=1&fid=57&tid=2017340]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
93ms |
get tp. blocked users: |
2ms |
others: | 271ms |
total: | 453ms |
0 / 0 |