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
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
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 Wed Feb 18 2015 16:31:16 for ndnSIM by
1.8.7