Я пишу кросс-платформенный код С++ (Windows, Mac). Есть ли способ проверить, сколько памяти используется текущим процессом? Очень надуманный фрагмент, иллюстрирующий:
unsigned long m0 = GetMemoryInUse();
char *p = new char[ random_number ];
unsigned long m1 = GetMemoryInUse();
printf( "%d bytes used\n", (m1-m0) );
Конечно (m1-m0) должно равняться random_number, но я пытаюсь сделать это на более сложном уровне, включая возможные вызовы библиотеки, которые могут выделять память.
Следующие не являются предпочтительными:
- Используйте Valgrind (или его значок)
- Используйте специализированный распределитель памяти для отслеживания выделенная память.