Hello! On Mon, Sep 25, 2017 at 11:41:43AM +0300, lego12...@yandex.ru wrote:
> On Sun, Sep 24, 2017 at 02:44:13AM +0300, Maxim Dounin wrote: > > On Fri, Sep 22, 2017 at 11:45:27AM +0300, Oleg wrote: > > > > > > Т.е. если выставить в 8 (sizeof(void*)), то должно быть норм, так? > > > > На практике разницы не будет, в том смысле, что на современных > > 64-битных платформах возвращаемая память всё равно будет выровнена > > на 16. > > Хм. Максим, я вот что вычитал в man memalign (funtoo linux): > > The glibc malloc(3) always returns 8-byte aligned memory addresses, > so > these functions are needed only if you require larger alignment values. > > Вы уверены, что 16? Абсолютно. Ну то есть это, безусловно, зависит от многих факторов, но на Линуксе со штатным аллокатором на 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). И на FreeBSD на практике тоже будет 16, причём даже для 32-битных платформ - выравнивание 8 возможно только для аллокаций не больше 8 байт, что в данном случае гарантировано не так. -- Maxim Dounin http://nginx.org/ _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru