| Summary: | Slow typing in big php files - Outline view performance optimization | ||||||
|---|---|---|---|---|---|---|---|
| Product: | z_Archived | Reporter: | Natalia Bartol <natalia.bartol> | ||||
| Component: | PDT | Assignee: | Natalia Bartol <natalia.bartol> | ||||
| Status: | CLOSED FIXED | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | P3 | CC: | jacek.pospychala, silviya | ||||
| Version: | unspecified | ||||||
| Target Milestone: | --- | ||||||
| Hardware: | PC | ||||||
| OS: | Windows 7 | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
|
Description
Natalia Bartol
Created attachment 209932 [details]
Outline view performance improvement - patch
Checking field's flags, as well as any other calls to dltk model is time consuming. Attached patch introduces changes that avoids examining dltk model when Outline view content is being updated.
1. OutlineFilter.matches(): filtering non-class variables is more effective when field’s parent is checked instead of field’s flags. If parent is not a class or interface then false is returned.
2. UseStatementAwareImageProvider.getBaseImageDescriptor(): getting images requires checking field’s/method’s flags. If field’s/method’s parent is not a class or interface then there is no point in checking flags and public field/method image is quickly returned.
3. PHPAppearanceAwareLabelProvider.getText(): There is no need to examine underlying model when simply field’s name can be returned as text for Outline view.
4. PHPOutlineContentProvider.hasChildren(): Fields and methods don’t have children on the Outline view.
great job Natalia! patch applied Verified. Closing Ilina Stefanova |