commit | a6bb576e5e165d7ca3352666330ceb194bf723c5 | [log] [tgz] |
---|---|---|
author | Simeon Andreev <simeon.danailov.andreev@gmail.com> | Tue Feb 06 13:17:06 2018 +0100 |
committer | Simeon Andreev <simeon.danailov.andreev@gmail.com> | Tue Apr 24 15:31:19 2018 +0200 |
tree | f5022bbde33e1f6fa639fd49e90edcc50c7d13e0 | |
parent | 84593108608e4659c178ffe01a56e55df26b6c35 [diff] |
Bug 351410 - Improving performance for simple cases Refactor rename on methods with common names, e.g. getName() can take very long. The rename is done mainly in two parts. A workspace search for methods with matching signatures, and a check to find out which of those methods are actually to be renamed. A large portion of the computations is done in the latter part. I.e. to determine the search-matching methods that are affected by the rename. Specifically, the rename will look for cases such as: interface I { void a() } interface J { void a() } class A implements I, J Renaming I.a must also affect J.a due to A. Type J is considered a married alien type, as A implements both I and J. The check for married alien types can be very expensive, as in worst case it involves a type hierarchy computation for each search match (for common names, there can be thousands of matches). This change improves simple cases, where its not necessary to look for alien types. This is done by examining the hierarchy of the method under rename, and checking whether any subtype has a super type which is not in this hierarchy. If not, the expensive alien types computation is omitted, since no alien types can exist. With this change, we observe roughly 4x performance gain for common, simple cases of renaming methods. Change-Id: I5aea126f715e8b98ef7c9bb6123535b3d1b5a668 Signed-off-by: Simeon Andreev <simeon.danailov.andreev@gmail.com>
Thanks for your interest in this project.
The JDT UI implements the user interface for the Java IDE. This includes views like Package Explorer and JUnit, the Java and properties files editors, Java search, and refactorings. Website: http://www.eclipse.org/jdt/ui/
Contributions to JDT UI are most welcome. There are many ways to contribute, from entering high quality bug reports, to contributing code or documentation changes. For a complete guide, see the [How to Contribute] 1 page on the team wiki.
Information regarding source code management, builds, coding standards, and more.
Before your contribution can be accepted by the project, you need to create and electronically sign the Eclipse Foundation Contributor License Agreement (CLA).
Public forum for Eclipse JDT users.
This project uses Bugzilla to track ongoing development and issues.
Be sure to search for existing bugs before you create another one. Remember that contributions are always welcome!
Contact the project developers via the project's “dev” list.