NGX_POOL_ALIGNMENT

Oleg lego12239 на yandex.ru
Вт Сен 26 08:33:50 UTC 2017


On Mon, Sep 25, 2017 at 02:44:47PM +0300, Maxim Dounin wrote:
> 
> Абсолютно.  Ну то есть это, безусловно, зависит от многих 
> факторов, но на Линуксе со штатным аллокатором на 64-битных 
> платформах - будет 16:
> 
> https://www.gnu.org/software/libc/manual/html_node/Aligned-Memory-Blocks.html
> 
> : The address of a block returned by malloc or realloc in GNU 
> : systems is always a multiple of eight (or sixteen on 64-bit 
> : systems).

  Спасибо за ссылку. Похоже man для memalign забыли поправить для
64-битных процессоров.
  Для общего понимания, если отвлечься от конкретно ngx_pool,
выравнивания в 8 байт для целых типов(кроме float, double и прочих
SSE/AVX) достаточно для быстрого доступа?
Например, мы выделяем большой кусок памяти и в нём уже выделяем куски
поменьше под всякие char* и выравниваем их на границы 8 байт.

-- 
Олег Неманов (Oleg Nemanov)


Подробная информация о списке рассылки nginx-ru