我正在编写一个C++程序(用gcc编译并在RedHat Linux上运行).程序需要在运行时知道堆栈上剩余多少空间以及堆中剩余多少空间.我意识到这个问题(关于堆)可能没有明确的答案,所以或者,我可以使用已经从堆中分配的内存量.有一个库/系统函数调用会给我这个数据吗?
我想补充一点,我只需要这个用于调试目的,并且只需要粗略估计,因此快速和肮脏的解决方案是完全可以接受的.但是,我需要非常频繁地查询内存使用情况,因此无法接受对Unix cmd-line实用程序的外壳并解析其输出.
我有一个程序使用太多的内存来分配堆上的许多小对象.所以我想研究一下优化它的方法.该程序使用Visual C++ 7编译.
有没有办法确定为给定对象实际分配了多少内存?我的意思是当我调用new时,堆分配的数量不少于必要的数量.我怎样才能找到确切分配的数量?