我创建了一个简单的程序,每次用户单击“Enter”时,它都会将一个整数数组分配到堆/空闲存储区中。我的ulitmate目标是看到堆内存大小随每个新分配的变化。我通过检查状态文件来查看堆内存大小的变化。不幸的是,在每次分配时,状态文件都不会更新。似乎唯一能让文件更新的方法就是我用一堆回车发送程序,然后更新。为什么会这样?我需要一个可靠的方法来确定我的程序在处理嵌入式系统时从动态分配中占用的内存范围。任何人都能提供/proc//status或其他可以确定堆内存大小的方法的任何细节吗?
同样,状态以KB为单位提供内存,如果看到这个信息的字节粒度更大,那就更好了——有什么方法可以做到这一点吗?谢谢您。
以下是我所做的一个示例程序:
#include
#include
int keepLooping()
{
return 1;
}
int main (int argc, char* argv[])
{
int exit_code = 0;
int fd = -1;
do
{
do
{
std::cout << '\n' << "Press a key to allocate data to the heap...";
} while (std::cin.get() != '\n');
int *someArray = new int[1000];
}
while (keepLooping());
return exit_code;
}