Plan for NB 6.5 Performance improvements
This is an implementation plan for performance improvements targeted for NetBeans 6.5 release. It covers work done by the performance team and also many important issues solved by other teams, but still not all performance work done for 6.5 (e.g. fixing reported performance bugs is not included).
For an overview of what's being done for 6.5 see the list of planned improvements.
Important NB 6.5 Dates
- Milestone 1 - June 11
- Feature freeze - July 14
- Code freeze - August 27
- Final release - September 30
This plan is divided into several two-week milestones. The paragraph under each milestone describes what should be done (finished) by the date of the milestone. The plan is checked and updated weekly (on Monday).
- FitnessAgainstForgetfulness - everything except UI, IZ 91665 - new DataLoaders' registration
- FitnessViaLaziness - enabling EntrySupport redesign integrated
- White list of classes - first version
- TODO: Will also try to have list of removed classes - weekly
- FitnessTestsWithoutX - all performance tests migrated to simpletests branch
- TODO: Tests migrated (rewritten), but there are still some issues with the infrastructure to be resolved to be really able to run the tests...
- FitnessTestsWithoutX - nothing blocking in the infrastructure
- FitnessAgainstForgetfulness - UI done
- FitnessAgainstForgetfulness - api support and testing support
- FitnessAgainstForgetfulness - add DataLoader classes to black list
- UML rewrite perf. sanity check + bugs filed (classes on startup, UI responsiveness regressions)
- FitnessForTheEnterprise - Subversion
- masterfs do not forget
- FitnessTestsWithoutX - integrated (per QE request)
- Maven perf. sanity check - IZ 138102
- Avoid debugger types to have their own listeners on everything changing in the IDE, implement efficient registration and listening - IZ 133682 (Martin E.)
- Delay SVN support initialization from startup - IZ 136490 (Tomas S.)
July 14 (feature freeze)
- FitnessViaLaziness - API for lazy children creation, FilterNode support
- FitnessViaLaziness - Use the API in DataSystems, at least a bit (lazy explorer - only show the actually visible content, incrementally)
- Do not load action classes from Windows menu IZ 137709
- (Jarda, Tomas Z.) P2: Start scanning of project classpath after all projects are opened - projects will open faster, will have complete classpath sooner (e.g. for the Go to Type dialog), avoiding lots of events about classpath modification during project opening, simpler and better defined procedure of opening a project, potentially less work done. IZ 67270
- (Jarda) P2: Make sure closed documents don't leak, make part of commit validation.
- Test dashboard transition complete, fully working again,.
- File:P3: Measure java refactoring and find possible concrete improvements/optimizations. (There
- (Jarda) P3: Make sure closed projects don't leak, make part of commit validation.
Tasks not yet included in the plan
- (J. Lahoda) P3: Fast Sources Packages expansion - reusing data from scanning. IZ 134555
- P2: Common dashboard fixes - adding cold start, easy comparison between builds, visualization of regressions, etc.
- P2: New UI tests - e.g. for PHP.
Other changes with significant effect on performance/responsiveness
- (Java&Editor team) Compile on save - incremental compilation of java files every time a file is saved; should speed up time to run a project or file (i.e. test changes). IZ 132165
Dropped tasks (postponed after 6.5)
- (Tomas Z., ?) P3: Faster building of complex (enterprise) projects - with multiple dependencies on a common project. The current compilation with ant exposes the problem with bigger projects - does not scale. IZ 42683
- (Jarda, Tomas Z.) P3: File changes events coalescing - avoid repeated re-indexing/re-compiling when multiple files are modified during a longer operation - e.g. cvs update or refactoring.
- Found too dangerous for 6.5. Will try to incorporate into new repository updater (created for new parsing API) which would postpone updating during versioning update.
- (Pavel, J. Lahoda) P2: Navigation working and responsive during up-to-date scanning - at least Go to Type dialog and Ctrl-click in editor. IZ 133943
- Dropped due to lack of time and only knowing a suboptimal solution. Will try to incorporate into new repository updater (created for new parsing API) which would stop scanning/updating for some time.