Package Drone 0.10.0 Milestone 3 just got uploaded to GitHub.
The main task in this milestone release was performance. Adding some tools to be able to provide performance information and fixing the performance bugs found.
The first step was to add some profiling infrastructure, like the SLF4J Profiler. In the beginning a test with OSGi weaving was made, adding a trace like call to each method call was the idea. However it turned out that adding OSGi weaving and ASM bytecode transformation seemed quite a task. Also was the fact that each method would simply get some trace call wrapped not very promising.
So some explicit profile calls got added, which could also push some manual meta data on the profile call. Using try-with-resource and lambdas the syntax does not seem to be that intrusive while the way this can be controlled is quite helpful. In fact so helpful that two serious performance issues could be fixed.
Don’t put too much weight on the following numbers but for one specific use case the performance was improved from 18 seconds for uploading a single artifact (including a full channel regeneration) to about 2.5 seconds for the same operation. And while there are a few more spots which could be optimized, it think this is a good first step.