在运行时,如何以编程方式确定动态链接库使用了多少内存?

时间:2012-02-08 13:18:48

标签: c++ windows memory dll

我想知道我的应用程序使用了多少内存。我也想知道我的程序的哪个部分使用了最多的内存。例如,我有一个使用100MB内存的进程,该进程中有一个使用90MB内存的.dll。我想知道“什么”.dll需要90MB。

我想取这个值并在我的程序中使用它;我想创建一个服务器,您可以在其中查看单独部件的内存使用情况。

此应用程序将在Windows上运行。

1 个答案:

答案 0 :(得分:1)

问题完全取决于操作系统。

(我假设DLL转换为Linux世界中动态加载的库和ELF共享对象)

对于Linux应用程序,您的应用程序可以按顺序读取/proc/self/maps文本伪文件。

如果您知道自己的申请流程ID是1234,那么您还可以阅读/proc/1234/maps文件,例如:通过键入终端

 cat /proc/1234/maps

还有/proc/self/smaps/proc/1234/smaps更加详细。