TrigByteStreamTools: Optimise the dumpHLTContentInBS_run3 script
Processing ByteStream data in python is full of performance traps. Juggling python and C++ types together to decode HLT EDM collection names from a BS file makes it even worse. Optimise the dumpHLTContentInBS_run3 script by reducing the number of the most costly operations, mainly python iterations over raw data in C++ format. This is done by reworking loops and functions, and using lru_cache to avoid decoding the same words multiple times.
Cuts down the time it takes to process 1000 events by a factor of 2 from 400 to 200 seconds. Tested with:
time prmon -i 3 -- trigbs_dumpHLTContentInBS_run3.py --sizeSummary data18_13TeV.00360026.unknown_SingleStream.daq.RAW._lb0151._Athena._0001.data
where the BS file is produced by test_trig_data_v1Dev_writeBS_grid.py
.
Extra change (separate commit): increase the timeout for the corresponding ART test steps to 10 minutes.
Fixes ATR-22083
Please don't squash the commits
Merge request reports
Activity
added Trigger master review-pending-level-1 labels
CI Result SUCCESS (hash c04b789b)Athena AthSimulation AthGeneration AnalysisBase externals cmake make required tests optional tests Full details available on this CI monitor view
Athena: number of compilation errors 0, warnings 0
AthSimulation: number of compilation errors 0, warnings 0
AthGeneration: number of compilation errors 0, warnings 0
AnalysisBase: number of compilation errors 0, warnings 0
For experts only: Jenkins output [CI-MERGE-REQUEST-CC7 22217]added review-approved label and removed review-pending-level-1 label
mentioned in commit eb1b5ba6
added sweep:ignore label
mentioned in merge request !50710 (merged)