Newer
Older
/* Copyright (C) 2024 FIAS Frankfurt Institute for Advanced Studies, Frankfurt / Main
SPDX-License-Identifier: GPL-3.0-only
Authors: Felix Weiglhofer [committer] */
#include "MemoryLogger.h"

Pierre-Alain Loizeau
committed
#include "AlgoFairloggerCompat.h"
#include "System.h"
using namespace cbm::algo;
template<typename T>
T MemoryLogger::BytesToMB(T bytes) const
{
return bytes / (1024 * 1024);
}
void MemoryLogger::Log()
{
size_t currentRSS = GetCurrentRSS();
size_t peakRSS = GetPeakRSS();
ptrdiff_t deltaRSS = currentRSS - mLastRSS;
float deltaPercent = 100.0f * deltaRSS / currentRSS;
L_(debug) << "Current memory usage: " << BytesToMB(currentRSS) << "MB (delta " << BytesToMB(deltaRSS) << "MB / "
<< deltaPercent << "%)"
<< ", peak: " << BytesToMB(peakRSS) << "MB";
mLastRSS = currentRSS;
}