2010-03-06 4 views
4

В ELF формат файла у нас есть Выравнивание Поле в Segment Header Table aka Program Header Table.Что такое поле «Выравнивание» в двоичных форматах? Зачем это нужно?

В случае Windows Формат PE-файла они переводят его на следующий уровень Разделы имеют два значения выравнивания, один в файле диска, а другой в памяти. Заголовок PE-файла указывает оба этих значения.

Я ничего не понял об этом выравнивании. Для чего нам это нужно? Как & Где он используется? Опять же, я не знаю, что такое выравнивание в контексте формата двоичного файла, но зачем оно нам нужно?

ответ

2

Ну, выравнивание обычно растягивая размер хранения некоторого значения, чтобы занять какой-то «круглый» пространство, как 32, 64, 128 бит и т.д.

Если мы говорим о бинарных форматах, это может быть сделано чтобы оптимизировать обработку формата. Операции чтения/записи могут быть более быстрыми, когда вы читаете/записываете некоторые «круглые» части длины данных.

Я нашел чтение для вас, сформулированная в лучших словах я могу придумать прямо сейчас:

Data structure alignment

Данные выравнивания структура является способом данные упорядочены и доступны в памяти компьютера , Он состоит из двух отдельных, но связанных вопросов: выравнивание данных и структура данных дополнение. Когда современный компьютер считывает или записывает на адрес памяти, он будет делать это в кусках с размером слова (например, 4 байтовых блока в 32-битной системе). Выравнивание данных означает помещение данных со смещением памяти, равным нескольким кратным размеру слова, что увеличивает производительность системы из-за того, как процессор обрабатывает память. Чтобы выровнять данные, может потребоваться вставить некоторые бессмысленные байты между концом последней структуры данных и началом следующего, которое составляет прокладку структуры данных.

+0

не могли бы вы быть немного более наглядными? – claws

+0

Я пытаюсь ... – 2010-03-07 19:20:19

+0

Спасибо! Теперь, я очень ясно. – claws

Смежные вопросы