Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/* Copyright (C) 2024 FIAS Frankfurt Institute for Advanced Studies, Frankfurt / Main
SPDX-License-Identifier: GPL-3.0-only
Authors: Felix Weiglhofer [committer] */
#pragma once
#include <cstddef>
/**
* @file MemoryLogger.h
* @brief Memory logging
**/
namespace cbm::algo
{
/**
* @brief Track the memory usage of the process and write it to the log
**/
class MemoryLogger {
public:
/**
* @brief Constructor
**/
MemoryLogger() = default;
/**
* @brief Destructor
**/
~MemoryLogger() = default;
/**
* @brief Log the current memory usage
**/
void Log();
private:
size_t mLastRSS = 0;
// Convert bytes to MB
// Template to allow for different integer types
template<typename T>
T BytesToMB(T bytes) const;
};
} // namespace cbm::algo