NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.0: NDN, CCN, CCNx, content centric networks
API Documentation
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
mem-usage.hpp
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
20
#ifndef MEM_USAGE_H
21
#define MEM_USAGE_H
22
23
#ifdef __linux__
24
// #include <proc/readproc.h>
25
// #include <unistd.h>
26
// // #include <sys/resource.h>
27
#include <sys/sysinfo.h>
28
#endif
29
30
#ifdef __APPLE__
31
#include <mach/task.h>
32
#include <mach/mach_traps.h>
33
#include <mach/mach.h>
34
#include <unistd.h>
35
#include <err.h>
36
#include <sys/param.h>
37
#include <mach-o/ldsyms.h>
38
#endif
39
44
class
MemUsage
{
45
public
:
49
static
inline
int64_t
50
Get
()
51
{
52
#if defined(__linux__)
53
/*
54
/proc/[pid]/statm
55
Provides information about memory usage, measured in pages. The
56
columns are:
57
58
size (1) total program size
59
(same as VmSize in /proc/[pid]/status)
60
resident (2) resident set size
61
(same as VmRSS in /proc/[pid]/status)
62
share (3) shared pages (i.e., backed by a file)
63
text (4) text (code)
64
lib (5) library (unused in Linux 2.6)
65
data (6) data + stack
66
dt (7) dirty pages (unused in Linux 2.6)
67
68
Reference: http://man7.org/linux/man-pages/man5/proc.5.html
69
*/
70
std::ifstream is(
"/proc/self/statm"
);
71
if
(!is.bad() && !is.eof()) {
72
unsigned
long
vm;
73
unsigned
long
rss;
74
is >> vm
// the first number: virtual memory
75
>> rss;
// the second number: resident set size
76
77
return
rss * getpagesize();
78
}
79
else
{
80
return
-1;
81
}
82
83
#elif defined(__APPLE__)
84
struct
task_basic_info t_info;
85
mach_msg_type_number_t t_info_count = TASK_BASIC_INFO_COUNT;
86
87
if
(KERN_SUCCESS
88
!= task_info(mach_task_self(), TASK_BASIC_INFO, (task_info_t)&t_info, &t_info_count)) {
89
return
-1;
// something is wrong
90
}
91
92
return
t_info.resident_size;
93
#endif
94
// other systems are not yet supported
95
return
-1;
96
}
97
};
98
99
#endif // MEM_USAGE_H
MemUsage::Get
static int64_t Get()
Get memory utilization in bytes.
Definition:
mem-usage.hpp:50
MemUsage
Copyright (c) 2011-2015 Regents of the University of California.
Definition:
mem-usage.hpp:44
ndnSIM
utils
mem-usage.hpp
Generated on Tue Feb 23 2016 22:18:45 for ndnSIM by
1.8.11