NB61PerfImprovements

This is a overview of suggested performance improvements for NetBeans 6.1. See the implementation plan for more details.

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 (reflects real user scenario to get a ready-to-use IDE).

  • P3: Improve startup time by 20%
  • 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
Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo