-
Notifications
You must be signed in to change notification settings - Fork 16
De-virtualize level_merger #745
Copy link
Copy link
Open
Labels
✨ optimisationIt's all about speed / spaceIt's all about speed / space🎓 student programmerWork, work...Work, work...📁 internalThis is where the ✨magic✨happensThis is where the ✨magic✨happens
Description
Metadata
Metadata
Assignees
Labels
✨ optimisationIt's all about speed / spaceIt's all about speed / space🎓 student programmerWork, work...Work, work...📁 internalThis is where the ✨magic✨happensThis is where the ✨magic✨happens
With #744 we closed #727 by making the
level_mergeruse dynamic dispatch, i.e. virtual functions, to allow taking inputs from different types of sources. Yet, in practice we always know the type of the respective inputs: a generator function, a diagram file, or with #444 a diagram root pointer.Hence, it should be possible to derive the type of the readers at compile-time and store them in a
std::tuple. This way, we would regain the ~2% performance decrease we got with #744 .