2. malloc_usable_size: 134221808 (13.12.2011 17:19:03) Только недавно про это говорили. . (13.12.2011 17:29:05)
1. malloc_usable_size: 134221808
Results:Memory alloc: 134217728
printf("2. malloc_usable_size: %d\n", malloc_usable_size(ptr));
for(i = 0; i < (256*512*1024)/2; i++) ptr[i] = 'X';
printf("1. malloc_usable_size: %d\n", malloc_usable_size(ptr));
printf("Memory alloc: %d\n", 256*512*1024);
char *ptr = (char*)malloc(256*512*1024);
int main(int argc, char *argv)
<костыль/> (13.12.2011 16:34:28) (13.12.2011 16:42:33) Ответ на: от unsigned 13.12.2011 16:42:33malloc_usable_size показывает только используемую память. (13.12.2011 16:47:01) Ответ на: от ur 13.12.2011 16:47:01Кем используемую? Он показывает, сколько можно использовать - т. е. сколько реально выделил malloc. Тебе не это нужно? (13.12.2011 16:58:14) Ответ на: от unsigned 13.12.2011 16:58:14В принципе да, работает. По ошибке не так перевёл значение в документации.Вот пример использования который всё подтверждает:#include <stdio.h>
напиши свою 100500 обертку. делов то. (13.12.2011 16:28:42) >>-----Цитата---->>если мне придётся использовать альтернативный аллокатор - какой лучше?<<-----Цитата----<<<костыль>
Нужна большая скорость выделения мелких объектов минимум на 1.5ГБ
Искал и нигде не нашёл функцию для того чтобы узнать сколько памяти выделено имея указатель в Linux. Хотя даже Mac OS X есть функция(унаследованная от *BSD как я понял) malloc_size(void *ptr) для этого. Пока я вижу такое решение проблемы - использовать jemalloc либо tcmalloc - там это есть.И если мне придётся использовать альтернативный аллокатор - какой лучше?
Узнать размер выделенной памяти - Development - Форум
Комментариев нет:
Отправить комментарий