ATLAS Offline Software
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 
19 namespace EL
20 {
21  namespace Detail
22  {
24 
25  class LeakCheckModule final : public Module
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:
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 
69 
80  private:
81  Long_t memIncreaseResident () const;
82 
83 
94  private:
95  Long_t memIncreaseVirtual () const;
96  };
97  }
98 }
99 
100 #endif
EL::Detail::LeakCheckModule::m_initMemVirtual
Long_t m_initMemVirtual
Amount of virtual memory used after initialisation in kB.
Definition: LeakCheckModule.h:59
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
EL::Detail::LeakCheckModule::onWorkerEnd
virtual StatusCode onWorkerEnd(ModuleData &data) override
action at the end of the worker job
Definition: LeakCheckModule.cxx:83
PropertyWrapper.h
EL::Detail::LeakCheckModule::failOnLeak
Gaudi::Property< bool > failOnLeak
Definition: LeakCheckModule.h:43
EL::Detail::ModuleData
the data the EventLoop core classes are sharing with the Module implementation
Definition: ModuleData.h:64
EL::Detail::LeakCheckModule::memIncreaseVirtual
Long_t memIncreaseVirtual() const
Virtual memory leak/increase during the job.
Definition: LeakCheckModule.cxx:140
Module.h
EL::Detail::LeakCheckModule::memIncreaseResident
Long_t memIncreaseResident() const
Resident memory leak/increase during the job.
Definition: LeakCheckModule.cxx:127
EL::Detail::LeakCheckModule::m_initMemResident
Long_t m_initMemResident
Amount of resident memory used after initialisation in kB.
Definition: LeakCheckModule.h:55
EL::Detail::Module
the base class for EventLoop instrumentation module
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/Module.h:40
EL::Detail::LeakCheckModule::m_finMemVirtual
Long_t m_finMemVirtual
Amount of virtual memory used after finalisation in kB.
Definition: LeakCheckModule.h:67
EL::Detail::LeakCheckModule::perEvVirtualLimit
Gaudi::Property< int > perEvVirtualLimit
Definition: LeakCheckModule.h:42
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
EL::Detail::LeakCheckModule::postFinalize
virtual StatusCode postFinalize(ModuleData &data) override
actions after algorithms have been finalized
Definition: LeakCheckModule.cxx:51
xAOD::uint64_t
uint64_t
Definition: EventInfo_v1.cxx:123
EL
This module defines the arguments passed from the BATCH driver to the BATCH worker.
Definition: AsgComponentFactories.h:16
columnar::final
CM final
Definition: ColumnAccessor.h:106
EL::Detail::LeakCheckModule::m_skippedEvents
uint64_t m_skippedEvents
number of skipped events
Definition: LeakCheckModule.h:51
EL::Detail::LeakCheckModule::absVirtualLimit
Gaudi::Property< int > absVirtualLimit
Definition: LeakCheckModule.h:40
xAOD::DiTauJetParameters::Detail
Detail
Definition: DiTauDefs.h:38
EL::Detail::LeakCheckModule::m_finMemResident
Long_t m_finMemResident
Amount of resident memory used after finalisation in kB.
Definition: LeakCheckModule.h:63
EL::Detail::LeakCheckModule::absResidentLimit
Gaudi::Property< int > absResidentLimit
Definition: LeakCheckModule.h:39
EL::Detail::LeakCheckModule::postFirstEvent
virtual StatusCode postFirstEvent(ModuleData &data) override
action after processing first event
Definition: LeakCheckModule.cxx:32
EL::Detail::LeakCheckModule::perEvResidentLimit
Gaudi::Property< int > perEvResidentLimit
Definition: LeakCheckModule.h:41
Global.h
EL::Detail::LeakCheckModule
a Module implementing a simple leak checker
Definition: LeakCheckModule.h:26