首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

Linux: How to measure actual memory usage of an application or process

2012-09-02 
Linux: How to measure actual memory usage of an application or process?http://stackoverflow.com/que

Linux: How to measure actual memory usage of an application or process?

http://stackoverflow.com/questions/131303/linux-how-to-measure-actual-memory-usage-of-an-application-or-process

?

Hi,

How do you measure the memory usage of an application or process in Linux? I've read?here?that "ps" is not an accurate tool to use for this intent.

Thanks, Kenneth

?

With?ps?or similiar tools you will only get the amount of memory pages allocated by that process. This number is correct, but:

a) does not reflect the actual amount of memory used by the application, only the amount of memory reserved for it

b) can be misleading if pages are shared, for example by several threads or by using dynamically linked libraries

If you really want to know what amount of memory your application actually uses, you need to run it within a profiler. For example,?valgrind?can give you insights about the amount of memory used, and, more importantly, about possible memory leaks in your program.

?

In recent versions of linux, use the?smaps?subsystem. For example, for a process with a PID of 1234:

smaps

It will tell you exactly how much memory it is using at that time. More importantly, it will divide the memory into private and shared, so you can tell how much memory your?instance?of the program is using, without including memory shared between multiple instances of the program.

热点排行