ATLASRECTS-6783 TRTRawDataProvider: Use DataPool for the offline case
TRTRawDataProvider: Use DataPool for the offline data case
This is a follow-up of past MRs on using data pools
The more relevant would be MR !62116 (merged) MR !62369 (merged) reco on MC and Overlay.
We seem we do many small allocation (Number 1 in my Q442 heaptrack test)
MOST CALLS TO ALLOCATION FUNCTIONS
14226185 calls to allocation functions with 5.42M peak consumption from
TRT_RodDecoder::int_fillFullCompress(eformat::ROBFragment<> const*, InDetRawDataContainer<>*, TRT_RodDecoder::t_CompressTable const&, std::vector<> const*) const
at /build/atnight/localbuilds/nightlies/Athena/23.0/athena/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/src/TRT_RodDecoder.cxx:1187
in /cvmfs/atlas-nightlies.cern.ch/repo/sw/23.0_Athena_x86_64-centos7-gcc11-opt/2023-04-08T2101/Athena/23.0.24/InstallArea/x86_64-centos7-gcc11-opt/lib/libTRT_RawDataByteStreamCnv.so
14226185 calls with 5.42M peak consumption from:
TRT_RodDecoder::fillCollection(eformat::ROBFragment<> const*, InDetRawDataContainer<>*, TRT_BSErrContainer*, std::vector<> const*) const
at /build/atnight/localbuilds/nightlies/Athena/23.0/athena/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/src/TRT_RodDecoder.cxx:297
in /cvmfs/atlas-nightlies.cern.ch/repo/sw/23.0_Athena_x86_64-centos7-gcc11-opt/2023-04-08T2101/Athena/23.0.24/InstallArea/x86_64-centos7-gcc11-opt/lib/libTRT_RawDataByteStreamCnv.so
TRTRawDataProviderTool::convert(std::vector<> const&, InDetRawDataContainer<>*, TRT_BSErrContainer*, EventContext const&) const
at /build/atnight/localbuilds/nightlies/Athena/23.0/athena/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/src/TRTRawDataProviderTool.cxx:121
in /cvmfs/atlas-nightlies.cern.ch/repo/sw/23.0_Athena_x86_64-centos7-gcc11-opt/2023-04-08T2101/Athena/23.0.24/InstallArea/x86_64-centos7-gcc11-opt/lib/libTRT_RawDataByteStreamCnv.so
TRTRawDataProvider::execute(EventContext const&) const
at /build/atnight/localbuilds/nightlies/Athena/23.0/athena/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/src/TRTRawDataProvider.cxx:129
in /cvmfs/atlas-nightlies.cern.ch/repo/sw/23.0_Athena_x86_64-centos7-gcc11-opt/2023-04-08T2101/Athena/23.0.24/InstallArea/x86_64-centos7-gcc11-opt/lib/libTRT_RawDataByteStreamCnv.so
Gaudi::Algorithm::sysExecute(EventContext const&)
In the other cases the improvements on cpu were not only in the producer side, but in access and also for deleting the elements at the end of the event.
Also ping @abarton , but mainly for the thing that is not happening here i.e I am not touching the online case ...
Edited by Christos Anastopoulos