-
Notifications
You must be signed in to change notification settings - Fork 60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reduce unnecessary template instantiations #477
Conversation
398d461
to
878c470
Compare
878c470
to
5d5c99c
Compare
Failing edm4hep workflow should be fixed with key4hep/EDM4hep#224 |
I'll try to fit in a test. I haven't set up my local environments to make it easy to swap out podio without recompiling all of DD4hep... |
Thanks. In principle this should be visible e.g. when compiling anything that links against edm4hep, right? Maybe I can do some before-/after tests myself to see if I see a difference. |
We've found it to be most noticeable in our reconstruction, where every file includes at least some data model file somewhere. But it also includes dd4hep and acts with EDM4hep, so spack will be wanting to recompile those too... |
Confirmed that this branch removes the expensive json template instantiations. (We're back to being dominated by Eigen template instantiations...) |
Thank you for the very quick turnaround. Quickly triggering CI again before merging. |
BEGINRELEASENOTES
nlohmann/json_fwd.hpp
in headers to reduce unnecessary template instantiations. Fixes PODIO_JSON_OUTPUT causes nlohmann/json.hpp in each include file, could be json_fwd.hpp instead #475ENDRELEASENOTES
@wdconinc could you give this a try and see if this solves things already?
Currently there are only the components left with the original include. That is mainly because they do not have a.cc
file yet, but if necessary we can also introduce that.