1 #include <MemoryUsage.hxx> 11 MemoryUsage::~MemoryUsage() {
23 gSystem->GetProcInfo(&info);
24 fEventMemory.push_back(info);
33 int numBins = fEventMemory.size();
34 TH1F hMemRes(
"memory_resident",
"Resident memory usage", numBins, 0, numBins);
35 hMemRes.GetXaxis()->SetTitle(
"Event");
36 hMemRes.GetYaxis()->SetTitle(
"Resident memory (GB)");
38 TH1F hMemVirt(
"memory_virtual",
"Virtual memory usage", numBins, 0, numBins);
39 hMemVirt.GetXaxis()->SetTitle(
"Event");
40 hMemVirt.GetYaxis()->SetTitle(
"Virtual memory (GB)");
46 for (std::vector<ProcInfo_t>::iterator it = fEventMemory.begin(); it != fEventMemory.end(); it++, bin++) {
47 ProcInfo_t info = (*it);
48 hMemRes.SetBinContent(bin, info.fMemResident / (1024. * 1024.));
49 hMemVirt.SetBinContent(bin, info.fMemVirtual / (1024. * 1024.));
56 double maxMemResident = (std::max_element(fEventMemory.begin(), fEventMemory.end(),
CmpMemResident()))->fMemResident;
57 double maxMemVirtual = (std::max_element(fEventMemory.begin(), fEventMemory.end(),
CmpMemVirtual()))->fMemVirtual;
59 std::cout <<
"Maximum resident memory usage: " << (maxMemResident / (1024. * 1024.)) <<
" GB" << std::endl;
60 std::cout <<
"Maximum virtual memory usage: " << (maxMemVirtual / (1024. * 1024.)) <<
" GB" << std::endl;
MemoryUsage()
Construct the memory usage class with logging disabled.
void Enable(bool enable=true)
void Write()
Write histograms of the memory usage to the output file.