12 #include <boost/algorithm/string/find.hpp>
13 #include <boost/algorithm/string/find_iterator.hpp>
14 #include <boost/algorithm/string/split.hpp>
16 using namespace boost;
19 static uint32_t count = 0;
25 std::ifstream file(
"/proc/cpuinfo");
26 std::string content((std::istreambuf_iterator<char>(file)),
27 std::istreambuf_iterator<char>());
29 typedef find_iterator<std::string::iterator> string_find_iterator;
31 for (string_find_iterator it =
32 make_find_iterator(content, first_finder(
"model name", is_iequal()));
33 it != string_find_iterator(); ++it, count++);
40 getloadavg(averages, 3);
51 std::ifstream file(
"/proc/self/status");
56 while (std::getline(file, line)) {
57 if (line.find(
"VmSize") != std::string::npos) {
58 std::stringstream vm(line);
59 std::string tmp; vm >> tmp; vm >> info.
virt;
62 if (line.find(
"VmRSS") != std::string::npos) {
63 std::stringstream vm(line);
64 std::string tmp; vm >> tmp; vm >> info.
res;
67 if (line.find(
"VmPeak") != std::string::npos) {
68 std::stringstream vm(line);
69 std::string tmp; vm >> tmp; vm >> info.
peakvirt;
72 if (rss && vmsize && peak)
78 std::ifstream file(
"/proc/meminfo");
81 file >> tmp; file >> info.
total; file >> tmp;
83 file >> tmp; file >> info.
free; file >> tmp;
85 file >> tmp; file >> info.
buffers; file >> tmp;
87 file >> tmp; file >> info.
cached;
void SystemMemInfo(SystemMemInfo &info)
void ProcessMemInfo(ProcessMemInfo &info)
void LoadAvg(CpuLoad &load)