Description
Explain what you would like to see improved and how.
Studies showed that interpreter lookups for classes like TNamed take place for example at ROOT startup, causing the deserialisation of parts of the PCH. Even if ROOT moved to PCMs, deserialisation of the persistified AST happens, even if more granular in a sense.
Such lookups are triggered by requests to our type system, i.e. TClass, which aim to provide information about inheritance from TObject of classes such as TNamed .
The core libraries of ROOT are indeed special: their root pcms are empty. All the reflection information, including IO annotations, come from the AST.
This performance penalty could be eliminated, by adding to the newly created TClass instances the status bits which are stored by rootcling in the dictionaries themselves.
Alternatively, a way in which the problem might be mitigated is to provide regular root-pcms also for libraries relying on the PCMs. The question here is about the cost of opening a root file and putting at disposal of the type system the TProtoClass instances or the cost of deserialising pieces of the PCM with the granularity of a Decl.
See https://sft.its.cern.ch/jira/browse/ROOT-9355 for more info.
ROOT version
All
Installation method
all
Operating system
all
Additional context
No response
Activity