plugin  0.1.0
memory_monitor.h
1 // Copyright (C) 2019-2024 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4 
5 #pragma once
6 
7 #include <deque>
8 #include <memory>
9 
11 public:
12  MemoryMonitor();
13  ~MemoryMonitor();
14  void setHistorySize(std::size_t size);
15  std::size_t getHistorySize() const;
16  void collectData();
17  std::deque<std::pair<double, double>> getLastHistory() const;
18  double getMeanMem() const; // in GiB
19  double getMeanSwap() const;
20  double getMaxMem() const;
21  double getMaxSwap() const;
22  double getMemTotal() const;
23  double getMaxMemTotal() const; // a system may have hotpluggable memory
24 private:
25  unsigned samplesNumber;
26  std::size_t historySize;
27  double memSum, swapSum;
28  double maxMem, maxSwap;
29  double memTotal;
30  double maxMemTotal;
31  std::deque<std::pair<double, double>> memSwapUsageHistory;
32  class PerformanceCounter;
33  std::unique_ptr<PerformanceCounter> performanceCounter;
34 };
Definition: memory_monitor.cpp:134
Definition: memory_monitor.h:10