Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.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++ 如何找出我的linux应用程序的内存占用?_C++_C_Linux_Memory_Memory Management - Fatal编程技术网

C++ 如何找出我的linux应用程序的内存占用?

C++ 如何找出我的linux应用程序的内存占用?,c++,c,linux,memory,memory-management,C++,C,Linux,Memory,Memory Management,我正在开发一个在linux上作为守护进程运行的c应用程序 我的应用程序正在加载3个共享库*。所以。有时它会执行shell脚本 在计算足迹时,我应该考虑脚本shell和3个共享库吗 如何找到我的应用程序的内存占用 编辑 是否可以从/proc/$pid/maps中提取封装外形 对于二进制文件,valgrind的工具非常有用。为了帮助处理这些数据,我也推荐。使用这些工具,您可以找到哪些函数正在分配内存,以及它们在任何特定时间拥有多少内存 考虑到您的应用程序打算作为守护进程运行,最重要的考虑是内存使用在

我正在开发一个在linux上作为守护进程运行的c应用程序

我的应用程序正在加载3个共享库*。所以。有时它会执行shell脚本

在计算足迹时,我应该考虑脚本shell和3个共享库吗

如何找到我的应用程序的内存占用

编辑

是否可以从/proc/$pid/maps中提取封装外形


对于二进制文件,valgrind的工具非常有用。为了帮助处理这些数据,我也推荐。使用这些工具,您可以找到哪些函数正在分配内存,以及它们在任何特定时间拥有多少内存


考虑到您的应用程序打算作为守护进程运行,最重要的考虑是内存使用在其整个生命周期内保持不变。

您应该考虑共享库:

这可能有用:
root@Linux:~# cat /proc/25998/maps
00400000-00412000 r-xp 00000000 1f:00 2823       /usr/sbin/mydaemond
00422000-00423000 rw-p 00012000 1f:00 2823       /usr/sbin/mydaemond
005a9000-005db000 rwxp 00000000 00:00 0          [heap]
76bd3000-76bd4000 ---p 00000000 00:00 0
76bd4000-76dd3000 rw-p 00000000 00:00 0          [stack:26009]
76dd3000-76dd4000 ---p 00000000 00:00 0
76dd4000-76fd3000 rw-p 00000000 00:00 0          [stack:26008]
76fd3000-76fd4000 ---p 00000000 00:00 0
76fd4000-771d3000 rw-p 00000000 00:00 0          [stack:26007]
771d3000-771d4000 ---p 00000000 00:00 0
771d4000-773d3000 rw-p 00000000 00:00 0          [stack:26006]
773d3000-773d4000 ---p 00000000 00:00 0
773d4000-775d3000 rw-p 00000000 00:00 0          [stack:26005]
775d3000-775d6000 r-xp 00000000 1f:00 799        /lib/libdl-0.9.33.2.so
775d6000-775e5000 ---p 00000000 00:00 0
775e5000-775e6000 r--p 00002000 1f:00 799        /lib/libdl-0.9.33.2.so
775e6000-775e7000 rw-p 00003000 1f:00 799        /lib/libdl-0.9.33.2.so
775e7000-775f9000 r-xp 00000000 1f:00 1436       /usr/lib/libz.so.1.2.7
775f9000-77608000 ---p 00000000 00:00 0
77608000-77609000 rw-p 00011000 1f:00 1436       /usr/lib/libz.so.1.2.7
77609000-7764e000 r-xp 00000000 1f:00 1402       /usr/lib/libssl.so.1.0.0
7764e000-7765e000 ---p 00000000 00:00 0
7765e000-77662000 rw-p 00045000 1f:00 1402       /usr/lib/libssl.so.1.0.0
77662000-77781000 r-xp 00000000 1f:00 1253       /usr/lib/libcrypto.so.1.0.0
77781000-77790000 ---p 00000000 00:00 0
77790000-777a1000 rw-p 0011e000 1f:00 1253       /usr/lib/libcrypto.so.1.0.0
777a1000-777a2000 rw-p 00000000 00:00 0
777a2000-77806000 r-xp 00000000 1f:00 808        /lib/libuClibc-0.9.33.2.so
77806000-77815000 ---p 00000000 00:00 0
77815000-77816000 r--p 00063000 1f:00 808        /lib/libuClibc-0.9.33.2.so
77816000-77817000 rw-p 00064000 1f:00 808        /lib/libuClibc-0.9.33.2.so
77817000-7781d000 rw-p 00000000 00:00 0
7781d000-77830000 r-xp 00000000 1f:00 801        /lib/libgcc_s.so.1
77830000-77840000 ---p 00000000 00:00 0
77840000-77841000 rw-p 00013000 1f:00 801        /lib/libgcc_s.so.1
77841000-77849000 r-xp 00000000 1f:00 1329       /usr/lib/libjson-c.so.2.0.1
77849000-77858000 ---p 00000000 00:00 0
77858000-77859000 rw-p 00007000 1f:00 1329       /usr/lib/libjson-c.so.2.0.1
77859000-7785a000 r-xp 00000000 1f:00 1331       /usr/lib/libjson.so.0.1.0
7785a000-77869000 ---p 00000000 00:00 0
77869000-7786a000 rw-p 00000000 1f:00 1331       /usr/lib/libjson.so.0.1.0
7786a000-7787d000 r-xp 00000000 1f:00 804        /lib/libpthread-0.9.33.2.so
7787d000-7788c000 ---p 00000000 00:00 0
7788c000-7788d000 r--p 00012000 1f:00 804        /lib/libpthread-0.9.33.2.so
7788d000-7788e000 rw-p 00013000 1f:00 804        /lib/libpthread-0.9.33.2.so
7788e000-77890000 rw-p 00000000 00:00 0
77890000-778d5000 r-xp 00000000 1f:00 1255       /usr/lib/libcurl.so.4.3.0
778d5000-778e4000 ---p 00000000 00:00 0
778e4000-778e6000 rw-p 00044000 1f:00 1255       /usr/lib/libcurl.so.4.3.0
778e6000-778f0000 r-xp 00000000 1f:00 1346       /usr/lib/libmicroxml.so.1.0
778f0000-778ff000 ---p 00000000 00:00 0
778ff000-77900000 rw-p 00009000 1f:00 1346       /usr/lib/libmicroxml.so.1.0
77900000-77904000 r-xp 00000000 1f:00 810        /lib/libubus.so
77904000-77913000 ---p 00000000 00:00 0
77913000-77914000 rw-p 00003000 1f:00 810        /lib/libubus.so
77914000-7791b000 r-xp 00000000 1f:00 809        /lib/libubox.so
7791b000-7792a000 ---p 00000000 00:00 0
7792a000-7792b000 rw-p 00006000 1f:00 809        /lib/libubox.so
7792b000-77934000 r-xp 00000000 1f:00 811        /lib/libuci.so
77934000-77943000 ---p 00000000 00:00 0
77943000-77944000 rw-p 00008000 1f:00 811        /lib/libuci.so
77944000-7794b000 r-xp 00000000 1f:00 793        /lib/ld-uClibc-0.9.33.2.so
77957000-7795a000 rw-p 00000000 00:00 0
7795a000-7795b000 r--p 00006000 1f:00 793        /lib/ld-uClibc-0.9.33.2.so
7795b000-7795c000 rw-p 00007000 1f:00 793        /lib/ld-uClibc-0.9.33.2.so
7fb30000-7fb51000 rwxp 00000000 00:00 0          [stack]
7fff7000-7fff8000 r-xp 00000000 00:00 0          [vdso]