[英]How can i get memory size allocated by my program?
我用opencv用c编写了我的项目。 我想要打印有关我的程序使用的已分配内存或内存的信息。 有没有一个函数,它给我有关内存的信息? 最后我使用Qt for Linux和Windows,
提前致谢。
您可以将包装器写入malloc
并free
,以跟踪您正在使用的内存量。
编辑:如果你还想拦截对malloc的调用和外部库中的free,你必须在共享库中定义它们并在libc之前加载它。 如何执行此操作取决于您的操作系统。
在Linux上,您将查看自己的进程信息伪文件 :
/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)
在Windows上,您可以查看自己的进程Process Object性能计数器:
Private Bytes
显示此进程分配的当前字节数,该字节数无法与其他进程共享。
如果检查elf,dump或map文件,还可以在构建期间对代码/数据段进行某种程度的内存分析。 堆栈使用的GCC命令行选项是: -fstack-usage和-fcallgraph-info。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.