OGS
BaseLib::MemWatch Class Reference

Detailed Description

Definition at line 8 of file MemWatch.h.

#include <MemWatch.h>

Public Member Functions

 MemWatch ()
unsigned long getVirtMemUsage ()

Private Member Functions

unsigned updateMemUsage ()

Private Attributes

unsigned long vmem_size_ = 0

Constructor & Destructor Documentation

◆ MemWatch()

BaseLib::MemWatch::MemWatch ( )

Definition at line 17 of file MemWatch.cpp.

18{
20}
unsigned updateMemUsage()
Definition MemWatch.cpp:22

References updateMemUsage().

Member Function Documentation

◆ getVirtMemUsage()

unsigned long BaseLib::MemWatch::getVirtMemUsage ( )

Definition at line 48 of file MemWatch.cpp.

49{
51 return vmem_size_;
52}
unsigned long vmem_size_
Definition MemWatch.h:16

References updateMemUsage(), and vmem_size_.

Referenced by main().

◆ updateMemUsage()

unsigned BaseLib::MemWatch::updateMemUsage ( )
private

Definition at line 22 of file MemWatch.cpp.

23{
24#if !defined(_WIN32) && !defined(__APPLE__) && !defined(__MINGW32__)
25 std::string fname("/proc/");
26 std::stringstream str_pid;
27 str_pid << static_cast<unsigned>(getpid());
28 fname += str_pid.str();
29 fname += "/statm";
30 unsigned pages;
31
32 std::ifstream in(fname.c_str(), std::ios::in);
33 if (!in.is_open())
34 {
35 perror("open");
36 return 1;
37 }
38
39 in >> pages;
40 vmem_size_ = static_cast<unsigned long>(pages) *
41 static_cast<unsigned long>(getpagesize());
42 in.close();
43#endif
44
45 return 0;
46}

References vmem_size_.

Referenced by MemWatch(), and getVirtMemUsage().

Member Data Documentation

◆ vmem_size_

unsigned long BaseLib::MemWatch::vmem_size_ = 0
private

Definition at line 16 of file MemWatch.h.

Referenced by getVirtMemUsage(), and updateMemUsage().


The documentation for this class was generated from the following files: