RefactoringImprovementsDesc
Java Refactoring Performance Improvements
Contents |
NetBeans 6.8
Looking for 6500 usages of a class, one huge project. See details in the issue: Find usages very slow when thousands of usages
5.5 | 75-95s | -Xmx256M 75-95s |
---|---|---|
6.5.1 | OOME | -Xmx768M 50-65s |
6.7.1 | 140-175s | -Xmx768M 85-93s |
6.8 | 45-48s | -- |
eclipse galileo | 12-15s |
NetBeans 6.7
Find Subclasses improvements
New automated tests used. Improvement is tracked in issue #120145.
Test-case: Find implementors of java.lang.Runnable in jEdit project
build | 1st | 2nd | 3rd |
---|---|---|---|
before | 11051ms | 11353ms | 10700ms |
after | 9179ms | 9378ms | 8890ms |
Test-case: Find subclasses of java.lang.Object in a small project
See FindSubclassesTest for test details.
before | after |
---|---|
did not finish | 0.8-1.3s |
Test-case: Find subclasses of java.lang.Runnable in mid-sized project
(not available yet)
Move class refactoring
MoveClassPerfTest class is used for testing.
build | 1st | 2nd | 3rd | 4th |
---|---|---|---|---|
before | 28810ms | 29521ms | 29333ms | 28743ms |
after | 4615ms | 4813ms | 4994ms | 4723ms |
NetBeans 6.5
Move Class Refactoring
Honza Pokorsky provided patch which reuses the Javac compiler during refactoring processing. It stops producing of garbage and improves the refactoring:
Test-case: Move the jEdit class from org.gjt.sp.jedit to org package. Old build, without optimization:
1st | 2nd | 3rd |
---|---|---|
21937 | 19257 | 16241 |
Current build 080801, with optimization:
1st | 2nd | 3rd |
---|---|---|
13635 | 6793 | 9231 |
Rename Refactoring
Prepare phase when renaming jEdit class:
Old build:
1st | 2nd | 3rd | 4th | 5th | |
---|---|---|---|---|---|
cold | 11907 | 11803 | 12059 | 11104 | 12113 |
warm | 9450 | 9773 | 9983 | 9713 | 9850 |
Current build 080811:
1st | 2nd | 3rd | 4th | 5th | |
---|---|---|---|---|---|
cold | 9642 | 9536 | 10263 | 9397 | 10707 |
warm | 8178 | 7914 | 8223 | 8019 | 8002 |