开发者

linux mechanism to measure process memory consumption f

开发者 https://www.devze.com 2023-03-19 19:02 出处:网络
what is the most efficient and accurate way/ API to measure heap memory consumption from the same running process programmatically? I want to estimate (as accurately as is reasonably possible) how muc

what is the most efficient and accurate way/ API to measure heap memory consumption from the same running process programmatically? I want to estimate (as accurately as is reasonably possible) how much memory has been new or malloc since startup, minus the memory that has开发者_JAVA百科 been free or delete

the scope of the question is linux and possibly other linux environments. The language is either C or C++


EDIT It is enough for my purposes to know the actual number (and size) of allocated/held blocks by any malloc implementation, i don't need the detail of actual malloc memory minus the the freed memory


Assuming new uses malloc look here.

For more details of a processes memory allocation, look at the /proc/[pid]/maps.

Also note that linux implements copy-on-write. This means that sometimes processes can share memory. This is especially true if the process was forked without calling exec afterwards.


You can use mallinfo for an estimation. I've just found this, not sure whether this is process or system.. :/

I'm not totally sure what you are asking, malloc minus freed is less than the actual usage because of the memory fragmentation, if you really need that number you have to use custom allocators (which are tiny wrappers around existing ones) everywhere in your code which is going to be painful.


Have you considered reading from /proc/u/stat? (where "u" is your pid)


If you use valgrind and run your program to completion, it gives you a report on memory usage.

http://valgrind.org/


You can get quite a bit of information about your heap usage by linking against tcmalloc from Google Perftools. It is designed to locate memory leaks and determine "who the heck allocated all that RAM", but it provides enough instrumentation to answer most questions you might have about your heap.

0

精彩评论

暂无评论...
验证码 换一张
取 消