Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[cxxmodules] Fix failing runtime_cxxmodules tests by preloading modules
Currently, 36 tests are failing for runtime modules: https://epsft-jenkins.cern.ch/view/ROOT/job/root-nightly-runtime-cxxmodules/ We want to make these test pass so that we can say runtime modules is finally working. This patch enables ROOT to preload all modules at startup time. In my enviroment, this patch fixes 14 tests for runtime cxxmodules. Preloading all the modules has several advantages. 1. We do not have to rely on rootmap files which doesn't support some features (namespaces and templates) 2. Lookup would be faster because we don't have to do trampolin via rootmap files. The only disadvantage of preloading all the modules is the start up time performance. `root.exe -q -l memory.C` This is a relase build without modules: ``` cpu time = 0.091694 seconds sys time = 0.026187 seconds res memory = 133.008 Mbytes vir memory = 217.742 Mbytes ``` This is a release build with modules, with this patch: ``` cpu time = 0.234134 seconds sys time = 0.066774 seconds res memory = 275.301 Mbytes vir memory = 491.832 Mbytes ``` As you can see, preloading all the modules makes both time and memory 2 to 3 times worse **at startup time**. However, it is a matter of couse that we get slower startup time if we try to load modules at start up time, not on-demand. I haven't had the good benchmark for this but in theory it reduces execution time instead, because currently we're anyway loading modules after the startup.
- Loading branch information