Welcome! Log In Create A New Profile

Advanced

Re: NGX_POOL_ALIGNMENT

Maxim Dounin
September 26, 2017 11:46PM
Hello!

On Tue, Sep 26, 2017 at 11:33:50AM +0300, Oleg wrote:

> 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 байт.

Для переменных простых типов - выравнивания на 8 байт AFAIK
достаточно, чтобы процессор работал быстро (если не брать в расчёт
SIMD-инструкции).

Дальше могут начинаться всякие нюансы, например, с cacheline size:
e.g., если мы работаем со структурой в 64 байта размером, и
cacheline size у нас 64, то выравнивать лучше на те же 64 - тогда
вся структура будет загружаться в кеш процессора сразу. Если же
выравнивать на 8, то одна структура с высокой вероятностью
разъедется по двум строкам кеша, и соответственно работать это
будет медленнее, чем могло бы.

--
Maxim Dounin
http://nginx.org/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

NGX_POOL_ALIGNMENT

Oleg September 21, 2017 04:36AM

Re: NGX_POOL_ALIGNMENT

Maxim Dounin September 21, 2017 10:44AM

Re: NGX_POOL_ALIGNMENT

Oleg September 22, 2017 04:46AM

Re: NGX_POOL_ALIGNMENT

Maxim Dounin September 23, 2017 07:46PM

Re: NGX_POOL_ALIGNMENT

Anonymous User September 25, 2017 04:42AM

Re: NGX_POOL_ALIGNMENT

Maxim Dounin September 25, 2017 07:46AM

Re: NGX_POOL_ALIGNMENT

Oleg September 26, 2017 04:34AM

Re: NGX_POOL_ALIGNMENT

Maxim Dounin September 26, 2017 11:46PM

Re: NGX_POOL_ALIGNMENT

Oleg September 27, 2017 02:00PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 225
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready