diff options
author | morozov1one <morozov1one@yandex-team.com> | 2024-11-29 20:28:24 +0300 |
---|---|---|
committer | morozov1one <morozov1one@yandex-team.com> | 2024-11-29 20:37:50 +0300 |
commit | 0924e1c53b7aec2c5efefe89499154b0a7e902f7 (patch) | |
tree | d41153892fac73aeed483b850203444f747bf54e /contrib/libs/mimalloc/include/mimalloc-override.h | |
parent | c67888be3cb9ffde249bcc0ec11b1a2cde58f60b (diff) | |
download | ydb-0924e1c53b7aec2c5efefe89499154b0a7e902f7.tar.gz |
Upgrade mimalloc to 1.8.7
Ниже описал существенные изменения в поведении, которые я заметил (в сравнении с версией 1.7.2, которая лежит в контрибах сейчас)
Полный changelog можно посмотреть в [readme.md](http://readme.md)
* Поменялся дефолт у [опции](https://github.com/microsoft/mimalloc/blob/9cae0d31cd28476664dbaa6e4e6940b9d900842a/src/options.c#L109), определяющей то, как неиспользуемая память возвращается в систему. В старых версиях по умолчанию использовался madvise с флагом MADV_FREE, в свежих версиях же используется MADV_DONTNEED. Это может вызвать неожиданные изменения (в худшую сторону) на графиках потребляемой анонимной памяти (), хотя по факту потребление должно быть \+- одинаковым
* Алгоритм работы аллокатора претерпел некоторые изменения. Например, мы споткнулись об то, что в новой версии mimalloc выделяет себе 1Gb (размер задается [опцией](https://github.com/microsoft/mimalloc/blob/2765ec93026f445cad8f38e6b196dd226a1f6e61/src/options.c#L87)) памяти при первой же аллокации. Само по себе это мало на что влияет, но неприятности могут случиться, если звать в начале программы mlockall
commit_hash:dc6d945c1776c874e554f94b705c4e446b0a11d8
Diffstat (limited to 'contrib/libs/mimalloc/include/mimalloc-override.h')
-rw-r--r-- | contrib/libs/mimalloc/include/mimalloc-override.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/contrib/libs/mimalloc/include/mimalloc-override.h b/contrib/libs/mimalloc/include/mimalloc-override.h index 7d9f3e7d0c..48a8a6226a 100644 --- a/contrib/libs/mimalloc/include/mimalloc-override.h +++ b/contrib/libs/mimalloc/include/mimalloc-override.h @@ -24,7 +24,7 @@ not accidentally mix pointers from different allocators). #define free(p) mi_free(p) #define strdup(s) mi_strdup(s) -#define strndup(s,n) mi_strndup(s,n) +#define strndup(s,n) mi_strndup(s,n) #define realpath(f,n) mi_realpath(f,n) // Microsoft extensions @@ -43,11 +43,13 @@ not accidentally mix pointers from different allocators). #define reallocf(p,n) mi_reallocf(p,n) #define malloc_size(p) mi_usable_size(p) #define malloc_usable_size(p) mi_usable_size(p) +#define malloc_good_size(sz) mi_malloc_good_size(sz) #define cfree(p) mi_free(p) #define valloc(n) mi_valloc(n) #define pvalloc(n) mi_pvalloc(n) #define reallocarray(p,s,n) mi_reallocarray(p,s,n) +#define reallocarr(p,s,n) mi_reallocarr(p,s,n) #define memalign(a,n) mi_memalign(a,n) #define aligned_alloc(a,n) mi_aligned_alloc(a,n) #define posix_memalign(p,a,n) mi_posix_memalign(p,a,n) |