C ++ calculates CPU / memory usage

I have a C ++ application called. / blah (to which I have the source code)

when i run. / blah

I can run "top" and see how much memory and processor "./blah" is using.

Now, anyway, to access this information? That is when I run. / blah, I want every second dump of its CPU and memory usage. What library should I use for this?

I am on MacOSX; but I would prefer a solution that also works on Linux.

Thank!

+3
source share
3 answers

You want to getrusage(). On the page :

int getrusage(int who, struct rusage *r_usage);

getrusage() , , , . who RUSAGE_SELF RUSAGE_CHILDREN. , r_usage , :

struct rusage {
         struct timeval ru_utime; /* user time used */
         struct timeval ru_stime; /* system time used */
         long ru_maxrss;          /* integral max resident set size */
         long ru_ixrss;           /* integral shared text memory size */
         long ru_idrss;           /* integral unshared data size */
         long ru_isrss;           /* integral unshared stack size */
         long ru_minflt;          /* page reclaims */
         long ru_majflt;          /* page faults */
         long ru_nswap;           /* swaps */
         long ru_inblock;         /* block input operations */
         long ru_oublock;         /* block output operations */
         long ru_msgsnd;          /* messages sent */
         long ru_msgrcv;          /* messages received */
         long ru_nsignals;        /* signals received */
         long ru_nvcsw;           /* voluntary context switches */
         long ru_nivcsw;          /* involuntary context switches */
 };
+9

Linux :

/proc/<pid>/stat

pid :

getpid()

pid_t.

, , : http://brokestream.com/procstat.html

, Mac OSX.

EDIT: Mac OS X procfs, Mac OSX, !

+1

Source: https://habr.com/ru/post/1733091/


All Articles