Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何获得程序分配的内存大小?_C++_C_Qt_Memory_Opencv - Fatal编程技术网

C++ 如何获得程序分配的内存大小?

C++ 如何获得程序分配的内存大小?,c++,c,qt,memory,opencv,C++,C,Qt,Memory,Opencv,我用opencv用c写我的项目。 我想要打印有关分配内存或程序使用内存的信息。 有没有一个函数,可以给我关于内存的信息? 最后,我使用Qt for Linux和Windows 提前感谢。您可以为malloc和free编写包装,跟踪您使用的内存量 编辑:如果您还想在外部库中拦截对malloc和free的调用,那么必须在共享库中定义它们,并在libc之前加载它们。如何做到这一点取决于您的操作系统。在Linux上,您将研究: 在Windows上,您可以查看自己的进程性能计数器: Private Byt

我用opencv用c写我的项目。 我想要打印有关分配内存或程序使用内存的信息。 有没有一个函数,可以给我关于内存的信息? 最后,我使用Qt for Linux和Windows


提前感谢。

您可以为
malloc
free
编写包装,跟踪您使用的内存量

编辑:如果您还想在外部库中拦截对malloc和free的调用,那么必须在共享库中定义它们,并在libc之前加载它们。如何做到这一点取决于您的操作系统。

在Linux上,您将研究:

在Windows上,您可以查看自己的进程性能计数器:

Private Bytes
显示此进程分配的当前无法与其他进程共享的字节数


如果选中elf、dump或map文件,还可以在构建期间对代码/数据段进行某种级别的内存分析。
堆栈使用的GCC命令行选项是:-fstack用法和-fcallgraph信息。

如果加载库并使用未包装的
malloc
,则前面的线程有一些想法,你的程序是否使用了这些内存?你能给我一个关于malloc作为包装器和免费的例子吗?@RemusRusanu这是绝对可能的。可以直接调用OS内存保留函数。像
sbrk
(尽管不推荐,因为它会干扰一些malloc实现)
memmap
是现代mallocs使用的,它提供了独立的内存块<在Win32上的code>VirtualAlloc,相同的概念。或者也是
NTHeap
之类的东西。-1我很确定OP要求在运行时分配内存。
/proc/[pid]/statm
Provides information about memory usage, measured in pages. The columns are:
size       total program size
           (same as VmSize in /proc/[pid]/status)
resident   resident set size
           (same as VmRSS in /proc/[pid]/status)
share      shared pages (from shared mappings)
text       text (code)
lib        library (unused in Linux 2.6)
data       data + stack
dt         dirty pages (unused in Linux 2.6)