ATLAS Offline Software
Loading...
Searching...
No Matches
PerfUtils Class Reference

#include <PerfUtils.h>

Collaboration diagram for PerfUtils:

Static Public Member Functions

static int getMem ()
static void getCpu (int &uTime, int &sTime)

Detailed Description

Definition at line 15 of file PerfUtils.h.

Member Function Documentation

◆ getCpu()

void PerfUtils::getCpu ( int & uTime,
int & sTime )
static

Definition at line 39 of file PerfUtils.cxx.

39 {
40 // return ms
41 pid_t pid = getpid();
42 std::ostringstream procstream;
43 procstream << "/proc/" << pid << "/stat";
44 std::ifstream memfile(procstream.str());
45 std::string longString;
46 memfile >> longString;
47
48 int nblancks = 0;
49 uTime = 0;
50 sTime = 0;
51
52 char line[256];
53 while ((memfile >> line)) {
54 nblancks++;
55 if (nblancks == 13) {
56 memfile >> line;
57 std::istringstream istream(line);
58 istream >> uTime;
59 uTime = uTime * 10;
60 memfile >> line;
61 std::istringstream istream1(line);
62 istream1 >> sTime;
63 sTime = sTime * 10;
64 return;
65 }
66 }
67}
int32_t pid_t

◆ getMem()

int PerfUtils::getMem ( )
static

Definition at line 17 of file PerfUtils.cxx.

17 {
18 int memSize = 0;
19 pid_t pid = getpid();
20 std::ostringstream procstream;
21 procstream << "/proc/" << pid << "/status";
22 std::ifstream memfile(procstream.str());
23 std::string line;
24 if (memfile.is_open()) {
25 while (std::getline(memfile, line)) {
26 std::size_t pos = line.find("VmSize:");
27 if (pos != std::string::npos) {
28 std::string myStr = line.substr(pos + 7);
29 myStr.erase(std::remove(myStr.begin(), myStr.end(), ' '), myStr.end());
30 myStr.erase(std::remove(myStr.begin(), myStr.end(), '\t'), myStr.end());
31 memSize = std::atoi(myStr.substr(0, myStr.find("kB")).c_str());
32 }
33 }
34 memfile.close();
35 }
36 return memSize;
37}
DataModel_detail::iterator< DVL > remove(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end, const T &value)
Specialization of remove for DataVector/List.

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