ATLAS Offline Software
Loading...
Searching...
No Matches
LeakCheckModule.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3*/
4
7
8
9
10#ifndef EVENT_LOOP__LEAK_CHECK_MODULE_H
11#define EVENT_LOOP__LEAK_CHECK_MODULE_H
12
13#include <EventLoop/Global.h>
14
16#include <EventLoop/Module.h>
17#include <Rtypes.h>
18
19namespace EL
20{
21 namespace Detail
22 {
24
26 {
27 //
28 // public interface
29 //
30
31 public:
32
33 using Module::Module;
34
35 virtual StatusCode postFirstEvent (ModuleData& data) override;
36 virtual StatusCode onWorkerEnd (ModuleData& data) override;
37 virtual StatusCode postFinalize (ModuleData& data) override;
38
39 Gaudi::Property<int> absResidentLimit {this, "absResidentLimit", 10000};
40 Gaudi::Property<int> absVirtualLimit {this, "absVirtualLimit", 0};
41 Gaudi::Property<int> perEvResidentLimit {this, "perEvResidentLimit", 10};
42 Gaudi::Property<int> perEvVirtualLimit {this, "perEvVirtualLimit", 0};
43 Gaudi::Property<bool> failOnLeak {this, "failOnLeak", false};
44
45 //
46 // private interface
47 //
48
50 private:
51 uint64_t m_skippedEvents = 0;
52
54 private:
55 Long_t m_initMemResident = -1;
56
58 private:
59 Long_t m_initMemVirtual = -1;
60
62 private:
63 Long_t m_finMemResident = -1;
64
66 private:
67 Long_t m_finMemVirtual = -1;
68
74 private:
75 Float_t m_incResBuffer = 0;
76
78 private:
79 Float_t m_incVirtBuffer = 0;
80
81
92 private:
93 Long_t memIncreaseResident () const;
94
95
106 private:
107 Long_t memIncreaseVirtual () const;
108 };
109 }
110}
111
112#endif
a Module implementing a simple leak checker
Long_t m_initMemVirtual
Amount of virtual memory used after initialisation in kB.
Gaudi::Property< int > absResidentLimit
Float_t m_incResBuffer
buffer for the resident memory increase branch
Long_t m_finMemResident
Amount of resident memory used after finalisation in kB.
Long_t memIncreaseVirtual() const
Virtual memory leak/increase during the job.
Gaudi::Property< int > perEvResidentLimit
uint64_t m_skippedEvents
number of skipped events
Gaudi::Property< int > absVirtualLimit
virtual StatusCode postFinalize(ModuleData &data) override
actions after algorithms have been finalized
Long_t memIncreaseResident() const
Resident memory leak/increase during the job.
Gaudi::Property< int > perEvVirtualLimit
Long_t m_finMemVirtual
Amount of virtual memory used after finalisation in kB.
virtual StatusCode postFirstEvent(ModuleData &data) override
action after processing first event
Gaudi::Property< bool > failOnLeak
virtual StatusCode onWorkerEnd(ModuleData &data) override
action at the end of the worker job
Long_t m_initMemResident
Amount of resident memory used after initialisation in kB.
Float_t m_incVirtBuffer
buffer for the virtual memory increase branch
the base class for EventLoop instrumentation module
This module defines the arguments passed from the BATCH driver to the BATCH worker.
::StatusCode StatusCode
StatusCode definition for legacy code.
the data the EventLoop core classes are sharing with the Module implementation
Definition ModuleData.h:64