Okay dynamic interfaces are most definitely consistently faster.  Now I need to re-do the IRezolveTargetCompiler interface to produce ICompiledRezolveTarget instances, and change the compiler's caching to cache those instead of delegates.  The existing delegate code can re-implement that interface by wrapping the interface via the delegates.

Then I need to produce a list of targets that are to be tested against a particular compiler to ensure that I can check that all compiler implementations are capable of running them.