Hey Guys,

I've been looking at ways to speed up Toree's startup and came up with a quick 
proof of concept that took the startup time from around 6.5 seconds to 5.5 
seconds on my laptop. I'd like to check committer interest in this before I go 
any further. This change will require rearranging the KernelBootstrap class.

My proof of concept is simple, I saw that the slowest part of startup was 
starting the Scala interpreter, so I ripped that out, moved it to its own 
thread, and started it very early in the bootstrap process. This way while it 
runs the rest of the kernel bootstrap can continue. I did this in a hacky way 
just to see if it would work. It would need to be implemented for real. 

I tested the startup time by setting up a test harness that just runs the 
kernel bootstrap and times it. I used YourKit to profile the application and 
see what was taking the most time. 

Here are the results from my tests. Time is in seconds.

run     original        changed
1       6.876   5.2
2       6.445   5.8
3       6.527   5.7
4       6.676   5.4
avg     6.631   5.525

If you guys think this is a reasonable approach let me know and i will make a 
ticket and work on implementing it for real. I think this speedup will work 
nicely with the changes proposed in TOREE-444 also.

Thanks
Brad Kaiser


Reply via email to