AthDevice::MemoryMonitorSvc Node1 AthDevice::MemoryMonitorSvc   + finalize() + memoryAllocated() + memoryDeallocated() + memoryCopied() * finalize() * memoryAllocated() * memoryDeallocated() * memoryCopied() Node2 extends< AthService, IMemoryMonitorSvc >     Node2->Node1 Node3 std::map< AthDevice ::MemoryMonitorSvc:: MemoryAllocKey, std:: size_t > + elements   Node3->Node1 -m_allocations -m_deallocations Node4 AthDevice::MemoryMonitor Svc::MemoryAllocKey   + operator<() Node4->Node3 +keys Node5 std::string     Node5->Node4 +component +device Node9 AthDevice::MemoryMonitor Svc::MemoryCopyKey + type + operator<() Node5->Node9 +component Node6 std::basic_string< Char >     Node6->Node5 Node7 std::mutex     Node7->Node1 -m_allocationsMutex -m_copiesMutex -m_deallocationsMutex Node8 std::map< AthDevice ::MemoryMonitorSvc:: MemoryCopyKey, std::size_t > + elements   Node8->Node1 -m_copies Node9->Node8 +keys