This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 197534

Summary: Improve efficiency of HighlightingManager together with View Hierarchy
Product: editor Reporter: Miloslav Metelka <mmetelka>
Component: Painting & PrintingAssignee: Miloslav Metelka <mmetelka>
Status: RESOLVED FIXED    
Severity: normal CC: alexvsimon, andrey_pk, bht, dbalek, dds.dhawal, dkonecny, dziastinux, Emperorlou, err, exceptions_reporter, gorrus, hmichel, jamiehutber, jglick, jkovalsky, loqman, mclaborn, michbarsinai, mmirilovic, moonport, muhammadghazali, nb_johan1, pjiricka, revathskumar, sapanparikh18, shmaltorhbooks, Simz, spao001, stac, tmysik, vladimircs, vv159170, xaguilars
Priority: P2 Keywords: PERFORMANCE, PLAN
Version: 7.0   
Hardware: PC   
OS: All   
Issue Type: DEFECT Exception Reporter:

Description Miloslav Metelka 2011-04-07 12:34:46 UTC
1. Start to use "fixedSize" attribute of HighlightsLayer to eliminate view rebuilds due to changes in certain upper z-order layers such as selection or caret row highlighting.

2. Once positions sharing gets implemented the highlighting layers should migrate to PositionsBag instead of OffsetsBag.

3. Due to RTL text support change the HighlightsView to correspond to a single TextLayout instead of a part of TextLayout.
Comment 1 Miloslav Metelka 2011-04-07 12:46:51 UTC
4. Optimize ParagraphView rebuilding process by reusing start position of the corresponding paragraph element where possible.
Comment 2 Miloslav Metelka 2011-06-08 11:19:14 UTC
4. was already implemented by issue #198719.
2. is case by case since OffsetsBag may still be more memory efficient for the highlights.

1. and 3. will be handled by upcoming commit.
Comment 3 Miloslav Metelka 2011-06-08 11:23:58 UTC
*** Bug 194816 has been marked as a duplicate of this bug. ***
Comment 4 Miloslav Metelka 2011-06-08 11:27:09 UTC
*** Bug 197309 has been marked as a duplicate of this bug. ***
Comment 5 Miloslav Metelka 2011-06-08 11:28:38 UTC
*** Bug 197687 has been marked as a duplicate of this bug. ***
Comment 6 Miloslav Metelka 2011-06-08 11:30:59 UTC
*** Bug 197892 has been marked as a duplicate of this bug. ***
Comment 7 Miloslav Metelka 2011-06-08 11:38:29 UTC
*** Bug 197917 has been marked as a duplicate of this bug. ***
Comment 8 Miloslav Metelka 2011-06-08 11:40:53 UTC
*** Bug 198561 has been marked as a duplicate of this bug. ***
Comment 9 Miloslav Metelka 2011-06-22 14:10:23 UTC
Unfortunately I'm still facing regressions with the rewritten code :(
It's not stable enough for integration so I have to ask for a waiver for 7.0.1.
I hope to stabilize and integrate the new code into the trunk during the next week.
Comment 10 Marian Mirilovic 2011-06-22 16:20:33 UTC
(In reply to comment #9)
> Unfortunately I'm still facing regressions with the rewritten code :(
> It's not stable enough for integration so I have to ask for a waiver for 7.0.1.

I agree, the only small note I would add to this : we will run community testing next two weeks for NB 7.0.1, in case we will face plenty reports i would vote for additional try to fix this into 7.0.1 , if not I am fine to fix this to 7.1 and skip 7.0.x
Comment 11 Miloslav Metelka 2011-07-04 11:20:51 UTC
The fix allows for splitting of the current 27 highlighting layers into two groups: 9 'bottom layers' and 18 'top layers'.
Bottom layers are those that change metrics (font's name, style or size). Changes in these layers result in views rebuilding.
Top layers (including e.g. caret row highlighting and text selection) do not change metrics and changes to them only result in repaints.
Btw the two layer groups contents may be logged with
-J-Dorg.netbeans.modules.editor.lib2.highlighting.HighlightingManager.level=FINER

The fix should improve performance since view rebuilds are generally more expensive than just repaint notifications (and certain portions of the repaint e.g. for a large text selection may even not be visible and thus not physically repainted). Since this is a broad change there may be certain inefficiencies that I'll try to fix once I'll be sure that there are no functional regressions.
I'd like to ask people on CC of this issue to test the change once it gets propagated into dev builds. Thanks.

http://hg.netbeans.org/jet-main/rev/d4fa1c637d0a
Comment 12 Quality Engineering 2011-07-05 13:56:46 UTC
Integrated into 'main-golden'
Changeset: http://hg.netbeans.org/main-golden/rev/d4fa1c637d0a
User: Miloslav Metelka <mmetelka@netbeans.org>
Log: #197534 - Improve efficiency of HighlightingManager together with View Hierarchy.
Comment 13 Miloslav Metelka 2011-08-16 09:32:22 UTC
*** Bug 190985 has been marked as a duplicate of this bug. ***
Comment 14 Miloslav Metelka 2011-08-16 14:50:19 UTC
*** Bug 198940 has been marked as a duplicate of this bug. ***
Comment 15 Miloslav Metelka 2011-08-16 15:00:54 UTC
*** Bug 199768 has been marked as a duplicate of this bug. ***
Comment 16 Milutin Kristofic 2011-09-15 13:09:30 UTC
*** Bug 200355 has been marked as a duplicate of this bug. ***
Comment 17 Miloslav Metelka 2011-09-20 12:24:25 UTC
*** Bug 201135 has been marked as a duplicate of this bug. ***
Comment 18 Miloslav Metelka 2011-09-22 14:29:59 UTC
*** Bug 201914 has been marked as a duplicate of this bug. ***
Comment 19 Miloslav Metelka 2011-10-07 10:22:35 UTC
*** Bug 192045 has been marked as a duplicate of this bug. ***
Comment 20 Miloslav Metelka 2011-10-07 10:26:48 UTC
*** Bug 192391 has been marked as a duplicate of this bug. ***
Comment 21 Miloslav Metelka 2011-10-07 12:22:11 UTC
*** Bug 192587 has been marked as a duplicate of this bug. ***
Comment 22 Miloslav Metelka 2011-10-07 12:45:32 UTC
*** Bug 194217 has been marked as a duplicate of this bug. ***
Comment 23 Miloslav Metelka 2011-10-07 12:46:07 UTC
*** Bug 194255 has been marked as a duplicate of this bug. ***
Comment 24 Miloslav Metelka 2011-10-07 12:48:15 UTC
*** Bug 194352 has been marked as a duplicate of this bug. ***
Comment 25 Miloslav Metelka 2011-10-07 12:52:30 UTC
*** Bug 194611 has been marked as a duplicate of this bug. ***
Comment 26 Miloslav Metelka 2011-10-07 12:57:39 UTC
*** Bug 194869 has been marked as a duplicate of this bug. ***
Comment 27 Miloslav Metelka 2011-10-10 11:59:28 UTC
*** Bug 200044 has been marked as a duplicate of this bug. ***
Comment 28 Miloslav Metelka 2011-10-10 14:09:38 UTC
*** Bug 199671 has been marked as a duplicate of this bug. ***
Comment 29 Miloslav Metelka 2011-10-10 14:15:38 UTC
*** Bug 199252 has been marked as a duplicate of this bug. ***
Comment 30 Miloslav Metelka 2011-10-10 15:59:38 UTC
*** Bug 198282 has been marked as a duplicate of this bug. ***
Comment 31 Miloslav Metelka 2011-10-11 15:07:33 UTC
*** Bug 198013 has been marked as a duplicate of this bug. ***
Comment 32 Miloslav Metelka 2011-10-11 15:36:26 UTC
*** Bug 197419 has been marked as a duplicate of this bug. ***
Comment 33 Miloslav Metelka 2011-10-11 15:44:03 UTC
*** Bug 197327 has been marked as a duplicate of this bug. ***
Comment 34 Miloslav Metelka 2011-10-12 09:41:04 UTC
*** Bug 196168 has been marked as a duplicate of this bug. ***
Comment 35 Miloslav Metelka 2011-10-12 12:26:42 UTC
*** Bug 196028 has been marked as a duplicate of this bug. ***
Comment 36 Miloslav Metelka 2011-10-12 12:30:51 UTC
*** Bug 196369 has been marked as a duplicate of this bug. ***
Comment 37 Miloslav Metelka 2011-10-12 12:37:19 UTC
*** Bug 195349 has been marked as a duplicate of this bug. ***
Comment 38 Miloslav Metelka 2011-10-17 11:52:38 UTC
*** Bug 193497 has been marked as a duplicate of this bug. ***