Сообщение Re[2]: Что лучше: сОрок пЯток или пятОк сорОк? от 29.06.2015 22:31
Изменено 29.06.2015 22:35 omgOnoz
Здравствуйте, Abyx, Вы писали:
A>Простой ответ (практика) — делаем слой абстракции (например на шаблонах, 0 оверхеда), реализуем оба варианта, сравниваем производительность
A>Нормальный ответ (теоретика) — данные к которым нужен доступ должны лежать рядом.
A>Если надо экономить память — то тоже лучше структура массивов, не надо тратиться на выравнивание.
A>Если надо обработать только одно поле, то с точки зрения кеша и всяких префетчей в процессоре лучше структура массивов.
A>С точки зрения распараллеливания (в т.ч. simd) — тоже лучше работать с массивами.
A>Но если надо обращаться сразу ко всем полям записи, и соседние записи не нужны — то массив структур.
A>Ответ разработчика из Сколково — пишем как удобнее (массив структур), потом заводим тикет на исследование возможностей повышения производительности.
A>Умный ответ — "а зачем велосипед городить? вы же наверняка такую задачу уже решали, производительность разных подходов замеряли, код писали — вот его и реюзнем".
Есть еще операции добавления и удаления.
A>Простой ответ (практика) — делаем слой абстракции (например на шаблонах, 0 оверхеда), реализуем оба варианта, сравниваем производительность
A>Нормальный ответ (теоретика) — данные к которым нужен доступ должны лежать рядом.
A>Если надо экономить память — то тоже лучше структура массивов, не надо тратиться на выравнивание.
A>Если надо обработать только одно поле, то с точки зрения кеша и всяких префетчей в процессоре лучше структура массивов.
A>С точки зрения распараллеливания (в т.ч. simd) — тоже лучше работать с массивами.
A>Но если надо обращаться сразу ко всем полям записи, и соседние записи не нужны — то массив структур.
A>Ответ разработчика из Сколково — пишем как удобнее (массив структур), потом заводим тикет на исследование возможностей повышения производительности.
A>Умный ответ — "а зачем велосипед городить? вы же наверняка такую задачу уже решали, производительность разных подходов замеряли, код писали — вот его и реюзнем".
Есть еще операции добавления и удаления.
Re[2]: Что лучше: сОрок пЯток или пятОк сорОк?
Здравствуйте, Abyx, Вы писали:
A>Простой ответ (практика) — делаем слой абстракции (например на шаблонах, 0 оверхеда), реализуем оба варианта, сравниваем производительность
A>Нормальный ответ (теоретика) — данные к которым нужен доступ должны лежать рядом.
A>Если надо экономить память — то тоже лучше структура массивов, не надо тратиться на выравнивание.
A>Если надо обработать только одно поле, то с точки зрения кеша и всяких префетчей в процессоре лучше структура массивов.
A>С точки зрения распараллеливания (в т.ч. simd) — тоже лучше работать с массивами.
A>Но если надо обращаться сразу ко всем полям записи, и соседние записи не нужны — то массив структур.
A>Ответ разработчика из Сколково — пишем как удобнее (массив структур), потом заводим тикет на исследование возможностей повышения производительности.
A>Умный ответ — "а зачем велосипед городить? вы же наверняка такую задачу уже решали, производительность разных подходов замеряли, код писали — вот его и реюзнем".
Есть еще операции добавления и удаления.
В место того чтобы обновить 1 массив, приходится обновлять сразу несколько.
A>Простой ответ (практика) — делаем слой абстракции (например на шаблонах, 0 оверхеда), реализуем оба варианта, сравниваем производительность
A>Нормальный ответ (теоретика) — данные к которым нужен доступ должны лежать рядом.
A>Если надо экономить память — то тоже лучше структура массивов, не надо тратиться на выравнивание.
A>Если надо обработать только одно поле, то с точки зрения кеша и всяких префетчей в процессоре лучше структура массивов.
A>С точки зрения распараллеливания (в т.ч. simd) — тоже лучше работать с массивами.
A>Но если надо обращаться сразу ко всем полям записи, и соседние записи не нужны — то массив структур.
A>Ответ разработчика из Сколково — пишем как удобнее (массив структур), потом заводим тикет на исследование возможностей повышения производительности.
A>Умный ответ — "а зачем велосипед городить? вы же наверняка такую задачу уже решали, производительность разных подходов замеряли, код писали — вот его и реюзнем".
Есть еще операции добавления и удаления.
В место того чтобы обновить 1 массив, приходится обновлять сразу несколько.