Skip to content

Poor Performance of Quick Outline View #2

@HeikoKlare

Description

@HeikoKlare

Current Behavior

The quick outline view (Ctrl+O) opens very slowly when the opened class is part of a large class hierarchy. The root cause seems to be a combination of two things:

  1. Loading the complete view is performed synchronously, thus the UI freezes while loading it. --> Asynchronously decorate quick outline view via DecorationManager #1922 eclipse-jdt/eclipse.jdt.ui#1929
  2. The action calculates the complete inheritance hierarchy of involved classes in order to show the "method overwrite indicator" labels for methods that overwrite methods of superclasses. This information is not cached in the AST and is calculated every time the quick outline view is opened. --> fix slow Quick Outline View #1922 eclipse-jdt/eclipse.jdt.ui#1926.

The ordinary outline view calculates the overwrite indicator labels asynchronously by spawning a decoration job and thus provides the same information but without blocking the UI.

Expected Behavior

The quick outline view shall open instantly and calculate and add additional information asynchronously. It should use the same behavior as in the ordinary outline view to improve responsiveness of the UI.
While loading the information in background, there should be an indicator that the view has not completely loaded all expected information in the quick outline view yet.

Additional Information

This is related to #3.

Existing Workaround

Disable "Java Method Overwrite Indicator" label.

8455de56-acf9-4dab-a1ad-1c94e1bfcced

Metadata

Metadata

Labels

EpicAn Epic IssueJDTIssues for JDTPerformanceA Request for a Performance Improvement

Type

No type

Projects

Status

✅ Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions