1. Startup improvements
(Note startup time regression was a waived P2 defect for 6.0.)
New definition of startup to be measured: Cold start of the full IDE
with some projects open including time to open the first java file via
"Go to Type" dialog (reflects real user scenario to get a ready-to-use IDE)
- P3: Feature on Demand - improve startup time by 30%
- P2: Class and resource caching for startup (prefetch) - improve startup time by 30% (>50% together with FoD)
- P2: Project opening does not block the IDE startup - postpone project opening after startup, open the first project based on last selected file in editor
- P2: "Go to Type" dialog working even during the up-to-date scanning
- P3: Avoid initial JDK classes scanning when creating/opening first project.
2. Memory
- P2: Find memory leaks in common areas - to make sure basic open/edit/save/compile/debug/test scenarios in main project types do not create major leaks in key data structures; special focus on visual web and JSP editing
- P2: Regression tests to prevent memory leaks from being reintroduced
- P3: Infrastructure for watching class loading (to eliminate unnecessary classes during startup)
- P3: Feature on demand - to reduce static memory footprint (perm, heap)
3. I/O and networking
- P1: Filesystem optimization - reducing memory (number of file objects in memory), improvement of FS refresh time by 40%
- P1: Significantly faster files deleting + faster first modification of an opened file
- P3: Analyze disk access during common operations like expanding a package - to be able to optimize for network and slow filesystems
- P3: Analyze why some I/O related operations are significantly slower on Windows
4. Navigation
- P2: "Go to Type" dialog working even with incomplete results, possibly merged with "Go to File" functionality
- Switching between files in editor or changing selection in Explorer is slow (due to non-scaling listeners)
- P2: Ensure responsive switching over multiple tabs (window system)
- P2: Fix most offending listeners (especially noticeable in full IDE)
- P3: Make repetitive actions in explorer (browsing, selections) fluent (actions system)
5. Editor
- Java editor:
- P3: incremental parsing in method bodies - more fluent typing, faster editor hints and code completion
- JSP editor
- P2: Improved typing performance - improvements in JSP parser, other tasks interrupted when the user starts to type, incremental html parser
- P2: Specific memory optimizations (tag libs)
- P3: Automated perf tests for important usages of the editor (html, jsp)
6. Visual Web
- P1: Memory leak fixes
- 50% improvement for a page open and a table drop
- P1: Optimized BeanInfo lookup
- P2: UI responsiveness fixed when loading pages
- P3: Caching table metadata not to connect to database during page open
- P3: Trim TLD descriptions in Woodstock components
- P2: On-demand binding attribute - significantly reducing size of JSP and Java files for designed pages
- P2: 50% improvement for opening page flow editor (avoiding unnecessary page syncing)
- P1: Improved runtime performance of Woodstock components (in version 4.1.1)
7. UML
- P3: Improve opening of UML diagrams (a lot of time spent in finding in model in diagrams with many connections)
- P3: Improve performance reverse engineering a java project into the same UML project more than once
- P3: Improve response time of UML explorer (selecting multiple nodes, invoking context menu)
8. Setup for future
- Extended use of automated tests: more types of tests, improved test infrastructure
- New ways of problem detection and measuring
- More analysis & prototypes for future work
- Base for sustainable future development