Plan for NB 6.8 Performance improvements
This is an implementation plan for performance improvements targeted for NetBeans 6.8 release. It covers work done by the performance team and also many important issues solved by other teams. Still, this is not all performance work being done for 6.8 (e.g. fixing reported performance bugs is not included).
For an overview of what has been considered see the list of performance topics.
This plan is divided into milestones by two weeks. 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).
- Oleg: Automated Scanning tests for J2SE projects
- Jarda: Profile me post mortem: IZ 166023
- Tomáš M.: Donate mediawiki PHP project to FitnessViaSamples
- Víťa: Donate Maven and C projects to FitnessViaSamples
- Pavel: Fix the MoveClassPerfTest, FindUsagesPerfTest, FindSubclassesTest.
- Pavel: Ergonomics fine tuning: Servers not visible in Tools -> Servers after activating Ruby, IZ 166184
- Jarda: Fix tests in scalability module
- Oleg: Fix WhitelistTest$1R.initializationError and WhitelistTest.testWhitelist3
- Oleg: Cold start numbers on Linux (Solaris)
- tests to measure start time on more platforms (Linux, Solaris)
- : Jarda: Finish inception review of DeclarativeActionRegistration
- : Should avoid rebuilding shared subprojects
- Oleg: Results from automated refactoring tests not present in perf. dashboard
- Jarda: Threads Test
- Víťa: Logger - Measure time needed for navigator to show content of opened Java file
- Pavel: Automated test - Measure time needed for navigator to show content of opened Java file
- Oleg: Add to regular test run - Measure time needed for navigator to show content of opened Java file
- Pavel: File and analyze issue: Delete of Java file is blocked while scan in progress - all delete problems and snapshot provided in issue
- Oleg: measure more project types (as donated by Víťa and Tomáš)
- Jarda: DeclarativeActionRegistration (API + APISupport)
- Jarda: Read Tests analysed and reported and fixed IZ 168874
- Vita: Files crawling is slow; mostly due to mime-type resolution - IZ 166340
- Jarda: no file writes on startup (part of commit validation)
- "Oleg": fix notifications
- ShortcutsFolder is too eager
- Jarda: FoD FileSystem Always On But Behind Real Ones
- Pavel: Is Find Usages in 6.7 really that good to not implement identifier index?
- DBObject usages - 5.5 - 75-95s - Mx256m
- DBObject usages - 6.5.1 - OOME, with Mx increased to 768M 50-65s
- DBObject usages - 6.7.1 - 140-175s, with Mx increased to 768M 85-93s
- DBObject usages - trunk - 155-170s - default -Mx, in this case 500M. (with Mx256m OutOfMemoryError), with Mx 768M 75-80s
- DBObject usages - eclipse galileo - 12-15s
- identifier index improves some specific cases (method searches etc.), but it seems we have big problem with underlying infrastructure
- Pavel: Multi-selection is no longer blocked - Fix Delete of Java file is blocked while scan in progress
- Max: Custom Side Bars pre-initialization outside of AWT IZ 168415
- Pavel & Jarda: Scan On Demand
- Pavel: Regression in refactoring tests - caused by fix #167773
- Tomáš H.: FitnessViaPostMortem improvements
- Oleg: divide 'scanning multiple projects' test into separate test cases
- Tomáš: Issue 170308 Remove PhpVisibilityQuery & use FilteringPathResourceImplementation
- Jarda: Read Tests on Solaris and Mac OS X
- Jarda: Read Tests on Windows
- Jarda & Lahváč: Leaking projects - IZ 143593 maybe more
- needs fix for Issue 166020 too
- enable testGCProjects in java.kit/**/MemoryValidationTest.java
- Pavel & Vita: Issue 133943 Make the IDE usable during scanning. Do not block the following operations even during scanning (don't need to wait):
- Dan Prusa: Debug (run in debugger) and Attach debugger.
- Tomas Z.: Run project - main class check should not block (Issue 166527).
- Pavel: Delete files - Issue 168267.
- Tomas Z.: Go to Type (access to index even during scanning, remove "BIG" lock held by indexing infrastructure even when not needed).
- Pavel: Issue 138880 - Gene Mutschler promised he will try to provide project. (needs discussion to his managers) - - closed, no additional data provided.
- Pavel: Single file delete still blocked, either Honza P. will provide the fix or we will remove the Safe Delete extension for single selection too - Delete of Java file is blocked while scan in progress
- FitnessWithoutTouches - tests of disk touches in editor
- Honza P. & Pavel Find usages improvements (mesurements, umbrella issue)
- Vita: More efficient batch operations I: Don't scan during deleting multiple files Issue 172199
- Jarda: FoD activation time test
- Jarda: ScanOnDemand on Autopdate
- Pavel & Vita: Issue 133943 Make the IDE usable during scanning (Scanning and Data Usage)
- Done for 6.8 by unblocking run, debug, delete and Go to Type. See also IDEUsableWhenScanning.
- Víťa: More efficient batch operations II: Interaction with VCS Issue 167098
- Jarda: Slowness detector - production mode (changeset)
Task dropped from the plan
- Vita: Allow modules to bundle preindexed data
- Tomas Hurka, Pavel: Do not initialize profiler until first used
- Hanz: Expanding Java Packages is slow
- cancelled Find Usages - identifier index, Jan Pokorský
- Fixed by improving I/O operations for 6.7
- See also specific Java & Editor performance tasks.
- Declarative UI
- Winsys should not instantiate closed TC in sliding mode
- Why showing full toolbar/menu is more than 4s slower than ergo toolbar? Maybe IZ 13540 and others.
- Multi selection of nodes and popup invocation in views is too slow - IZ 80723 and others
- Navigator builds the panel content during TC open even when