Re: выравнивание и массивы
От: remark Россия http://www.1024cores.net/
Дата: 02.02.08 23:00
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Для оптимизации доступа к данным, на всех платформах, применяется выравнивание данных, т.е. расположение данных по стартовым адресам, кратным величине выравнивания, иначе, получаем пени за обращение по некратным адресам, или даже падения, на некоторых платформах. => элементы массивов, должны располагаться так же с выравниванием, но это не так

почему же?

Элементы массива располагаются с тем же выравниваем, что и отдельные переменные.


А>Пусть у меня есть бинарный файл, в котором находится порядка 10^6 структуры данных, с 30 полями в каждой структуре, естественно с выравниванием == 1. Необходимо последовательно считать все эти структуры, и подсчитать некие параметры...

А>Вопрос, стоит ли перепаковывать данные после прочтение в стандартное выравние на платформе и уж потом оперировать с ними? А как быть на платформах, где обращение по невыравненному полю приводит к краху?

Это зависит. Зависит много от чего. Такие вопросы крайне архитектурно-зависимы. Так же будет влиять конкретная раскладка структуры. Проще всего тут просто замерить конкретные варианты.
Тем не менее интуиция подсказывает, что перепаковка замедлит работу. По крайней мере на x86.



1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.