My code does not have much pointer indirection, precisely to avoid this problem. The description above was of the kernel (which was UhClem's comparison above), whose APIs tend to use a lot of pointer indirections. The speed of compiled binaries is a fun optimization problem, which is the reason it is a hobby project. But the server requirements are for *compiling* the code itself, not for the compiled binaries, as many of the compiled binaries do not even run on x86.If your code relies on several levels of pointer indirection, it seems that the processor will always be invalidating the cache contents...
So, main memory bandwidth will be a critical issue.
About the "template metaprogramming", it seems you are using the compiler to do two different things at the same time: write the code that you want and compile it.
Have you considered doing the metaprogramming yourself?
Veering way off course of this topic: Template metaprogramming in C++ is the closest I can get to Lisp reader macros, while still in full control of object memory layout. As a hobby project, writing code to write code is way more fun than just writing code