У меня есть структура, которая содержит символ *, который содержит закодированные / сжатые двоичные данные. Функция декодирует и распаковывает эту двоичную функцию во вложенную структуру первой структуры. Упрощенные определения структуры ниже:
typedef struct {
int count;
float X-data;
float Y-data;
} spectra;
typedef struct {
int count;
char* binary;
int binary_length;
spectrum* spectra
} chrom;
Моя первая версия программы освободила только память, выделенную для char * в конце программы, но вчера я понял, что могу освободить ее сразу после декодирования / распаковки.
Затем я попытался сравнить разницу с точки зрения производительности с Valgrind, но в ней указан общий объем памяти, выделенный программой, который, очевидно, остается неизменным. Я хотел бы знать, сколько памяти у меня теперь доступно (дополнительно) для самих вычислений, поскольку мне нужно хранить меньше данных в моей памяти во время работы программы.
Есть ли у кого-нибудь хорошие инструменты / предложения для меня, как это измерить?
Заранее спасибо.