Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 369435

Summary: Slow typing in big php files - Outline view performance optimization
Product: z_Archived Reporter: Natalia Bartol <natalia.bartol>
Component: PDTAssignee: 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 Flags
Outline view performance improvement - patch jacek.pospychala: iplog+

Description Natalia Bartol CLA 2012-01-23 14:02:19 EST
Build Identifier: 

Working with big php files (>25k lines of code) gets slower with Outline view open. 

Reproducible: Always
Comment 1 Natalia Bartol CLA 2012-01-23 14:09:31 EST
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.
Comment 2 Jacek Pospychala CLA 2012-01-24 02:37:28 EST
great job Natalia!

patch applied
Comment 3 Sylvia Tancheva CLA 2012-07-06 04:34:42 EDT
Verified. Closing
Ilina Stefanova