#include <stdio.h>
#include <sys/time.h>
#include "pl_util.h"
#define FILE_MEMORY_STATUS "/proc/self/statm"
double
now_us(
void
)
{
struct
timeval tv;
double
now = 0.0;
int
rc = gettimeofday(&tv, 0);
if
(rc == 0) {
now = 1000000.0 * tv.tv_sec + tv.tv_usec;
}
return
now;
}
long
total_memory_pages(
void
)
{
long
pages = 0;
FILE
* fp = 0;
do
{
long
size, resident, share, text, lib, data, pdirty;
int
nread;
fp =
fopen
(FILE_MEMORY_STATUS,
"r"
);
if
(!fp) {
break
;
}
nread =
fscanf
(fp,
"%ld %ld %ld %ld %ld %ld %ld"
,
&size, &resident, &share, &text, &lib, &data, &pdirty);
if
(nread != 7) {
break
;
}
pages = size;
}
while
(0);
if
(fp) {
fclose
(fp);
fp = 0;
}
return
pages;
}