суббота, 9 февраля 2013 г.

с++ узнать сколько памяти выделено под указатель

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 - Форум

Комментариев нет:

Отправить комментарий