remove/reduce the eclipse freeze (except from user request, force clean+build)
allow GC to free more memory when needed to build,... (eg : free some information from previous build (from same or other project))
use less CPU
avoid too many compilation, sometimes not uptodate data (AST) is acceptable
less allocation, reuse object if available
reduce memory used to build
To rich those goals, there is several axes/startegies, Tuning is allowing to provide/configure/use them and to collect feedback information.
The majority of proposal should impact scala-ide, but during investigation some bug or enhancement can be only allowed by modification of scala-compiler (TODO : define the way to follow in this case : fork full scalac, move patched classed under a scala-ide project, use aspect to monkey patch scalac like for jdt ?).
Some major difference vs command line compilation :
compiler could be resident
there is several project to compile
each project could use several compiler (presentation vs builder)
How to help :
provide feedback about tuning feature
capture and share information about freeze, memory leak,... in this page or in tickets (I'll try to share mime here)
Eg when my eclipse start to freeze :
I start a visualvm (could be download alone or use the one provide in jdk 1.6.0_21)
I open the monitor of the eclipse process
I wait few second, take a screenshot (see samples below)
for gc and memory issue I also do a Heap dump (and save it for postmordem analyze with VisualVM or Mat).
add a Tuning Preferences page (change need to restart eclipse)
allow user to choose between strongly caching the last Compilation Result of single File or soft caching every Compilation Result