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 223192 - 30s - org.netbeans.modules.subversion.ui.diff.MultiDiffPanel$SetupsPrepareSupport$1.run()
Summary: 30s - org.netbeans.modules.subversion.ui.diff.MultiDiffPanel$SetupsPrepareSup...
Status: RESOLVED FIXED
Alias: None
Product: versioncontrol
Classification: Unclassified
Component: Subversion (show other bugs)
Version: 7.3
Hardware: All All
: P3 normal (vote)
Assignee: Ondrej Vrabec
URL:
Keywords: PERFORMANCE
: 223390 (view as bug list)
Depends on:
Blocks: 246421
  Show dependency tree
 
Reported: 2012-12-03 16:23 UTC by Martin Grebac
Modified: 2014-08-21 12:30 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter: 196035


Attachments
nps snapshot (359.18 KB, application/nps)
2012-12-03 16:23 UTC, Martin Grebac
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Grebac 2012-12-03 16:23:16 UTC
This bug was originally marked as duplicate of bug 220173, that is already resolved. This bug is still valid, so this seems to be another bug, but it might be related.

Build: NetBeans IDE Dev (Build nbms-and-javadoc-9596-on-20121114)
VM: Java HotSpot(TM) 64-Bit Server VM, 23.5-b02, Java(TM) SE Runtime Environment, 1.7.0_09-b05
OS: Mac OS X

User Comments:
mgrebac: reviewing diffs for lots of files (~250)



Maximum slowness yet reported was 30300 ms, average is 30300
Comment 1 Martin Grebac 2012-12-03 16:23:24 UTC
Created attachment 128793 [details]
nps snapshot
Comment 2 Stanislav Aubrecht 2012-12-04 10:07:29 UTC
Does subversion.ui.diff.MultiDiffPanel.SetupsPrepareSupport.run() need to run in EDT?
Comment 3 Ondrej Vrabec 2012-12-04 10:39:54 UTC
(In reply to comment #2)
> Does subversion.ui.diff.MultiDiffPanel.SetupsPrepareSupport.run() need to run
> in EDT?
I cannot say for sure. But even if we moved the calls from AWT to background, i don't think it would help at all. See:
> org.openide.awt.ContextManager$LSet.resultChanged(): 5235 / 0
> org.openide.util.Mutex.readAccess(): 5235 / 0
> org.openide.util.Mutex.doEvent(): 5235 / 0
All work is done in org.openide.awt.ContextManager in AWT anyway, so i don't think we can do anything about it. Either it must be optimized in org.openide.awt.ContextManager (can it?) or in Lookup - it seems to be extremely slow and continuously blocked by Active Reference Queue Daemon thread.
Comment 4 Jaroslav Tulach 2012-12-11 15:14:31 UTC
16s in org.netbeans.modules.subversion.ui.diff.MultiDiffPanel.access$2200()
14s in org.netbeans.modules.subversion.ui.diff.DiffFileTable.setTableModel()

both call chains(!) then end up in changing actionGlobalLookup() and a lot of context aware actions then start to process the change. Consider changing the lookup only once, possibly outside of EDT. I am going to add more logging to ContextManager.
Comment 5 Jaroslav Tulach 2012-12-11 15:16:11 UTC
ergonomics#a0c9819990d5
Comment 6 Ondrej Vrabec 2012-12-14 11:05:38 UTC
i'll get rid of abusing the global lookup and go back to using TC.setSelectedNodes only.
Comment 7 Ondrej Vrabec 2012-12-14 11:25:39 UTC
fix: http://hg.netbeans.org/core-main/rev/650bfb6fa9b7
Comment 8 Quality Engineering 2012-12-17 12:37:13 UTC
Integrated into 'main-golden', will be available in build *201212170919* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/a0c9819990d5
User: Jaroslav Tulach <jtulach@netbeans.org>
Log: #223192: org.openide.awt.ContextManager.isEnabledOnData: LowPerformance took 30300 ms.
#223192: Print the list of actions in case updating their state takes more than 2s
Comment 9 Ondrej Vrabec 2012-12-19 13:52:41 UTC
*** Bug 223390 has been marked as a duplicate of this bug. ***