I am motivated by this challenge: let’s make the cross-compiled version of Concordion.NET faster than the C# implementation :-)
After taking another look at profiler data, there are two more opportunities for performance improvement:
1) Could we make the org.concordion.api.Resource class not final? Then I could derive a class with .NET specific implementation.
2) Could we find another mechanism to instantiate runners? On the .NET platform it takes some time to set Java system properties. What about using some kind of Runner registry that could be initialized from source code?
Both improvements would bring 100ms each for a single test run taking around 600-900ms. Then, one test could run under halve a second – great!