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 197920 - Max CPU usage with displaying dependency graph
Summary: Max CPU usage with displaying dependency graph
Status: RESOLVED FIXED
Alias: None
Product: platform
Classification: Unclassified
Component: Graph (show other bugs)
Version: 7.0
Hardware: PC Windows 7 x64
: P3 normal (vote)
Assignee: issues@platform
URL:
Keywords: PERFORMANCE
Depends on:
Blocks:
 
Reported: 2011-04-20 22:21 UTC by malfunction84
Modified: 2011-04-22 05:03 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
Thread Dump (24.46 KB, text/plain)
2011-04-20 22:22 UTC, malfunction84
Details
Profiler snapshot (18.94 KB, application/x-nps)
2011-04-20 23:06 UTC, Jesse Glick
Details

Note You need to log in before you can comment on or make changes to this bug.
Description malfunction84 2011-04-20 22:21:40 UTC
When the active tab is a Maven dependency graph, the usage of one CPU is maxed out.

A threaddump is attached.  The console peppered it with line breaks, and I did my best to clean it up.
Comment 1 malfunction84 2011-04-20 22:22:04 UTC
Created attachment 107868 [details]
Thread Dump
Comment 2 Jesse Glick 2011-04-20 23:05:17 UTC
Seems to be reproducible even with a small dependency graph, e.g. org.apache.maven:maven-settings-builder:3.0.3.
Comment 3 Jesse Glick 2011-04-20 23:06:17 UTC
Created attachment 107869 [details]
Profiler snapshot

Alt-Shift-Y to start & stop is the better way to capture profiling information.
Comment 4 Jesse Glick 2011-04-20 23:30:01 UTC
ImageWidget.repaint is being called thousands of times a second.

at org.netbeans.api.visual.widget.Widget.repaint(Widget.java:1289)
at org.netbeans.api.visual.widget.ImageWidget.setImageCore(ImageWidget.java:118)
at org.netbeans.api.visual.widget.ImageWidget.access$100(ImageWidget.java:57)
at org.netbeans.api.visual.widget.ImageWidget$1.imageUpdate(ImageWidget.java:66)
at sun.awt.image.ImageWatched$WeakLink.newInfo(ImageWatched.java:114)
at sun.awt.image.ImageWatched.newInfo(ImageWatched.java:151)
at java.awt.image.RGBImageFilter.filterRGBPixels(RGBImageFilter.java:187)
at java.awt.image.RGBImageFilter.setPixels(RGBImageFilter.java:258)
at sun.awt.image.OffScreenImageSource.sendPixels(OffScreenImageSource.java:119)
at sun.awt.image.OffScreenImageSource.produce(OffScreenImageSource.java:169)
at sun.awt.image.OffScreenImageSource.addConsumer(OffScreenImageSource.java:48)
at sun.awt.image.OffScreenImageSource.startProduction(OffScreenImageSource.java:62)
at java.awt.image.FilteredImageSource.startProduction(FilteredImageSource.java:166)
at sun.awt.image.ImageRepresentation.startProduction(ImageRepresentation.java:701)
at sun.awt.image.ImageRepresentation.drawToBufImage(ImageRepresentation.java:776)
at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:989)
at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:2979)
at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:2964)
at org.netbeans.api.visual.widget.ImageWidget.paintWidget(ImageWidget.java:171)
at org.netbeans.api.visual.widget.Widget.paint(Widget.java:1430)
at org.netbeans.api.visual.widget.Widget.paintChildren(Widget.java:1485)
at org.netbeans.api.visual.widget.LevelOfDetailsWidget.paintChildren(LevelOfDetailsWidget.java:106)
at org.netbeans.api.visual.widget.Widget.paint(Widget.java:1431)
at org.netbeans.api.visual.widget.Widget.paintChildren(Widget.java:1485)
at org.netbeans.api.visual.widget.LevelOfDetailsWidget.paintChildren(LevelOfDetailsWidget.java:106)
at org.netbeans.api.visual.widget.Widget.paint(Widget.java:1431)
at org.netbeans.api.visual.widget.Widget.paintChildren(Widget.java:1485)
at org.netbeans.api.visual.widget.Widget.paint(Widget.java:1431)
at org.netbeans.api.visual.widget.Widget.paintChildren(Widget.java:1485)
at org.netbeans.api.visual.widget.Widget.paint(Widget.java:1431)
at org.netbeans.api.visual.widget.Widget.paintChildren(Widget.java:1485)
at org.netbeans.api.visual.widget.Widget.paint(Widget.java:1431)
at org.netbeans.api.visual.widget.SceneComponent.paint(SceneComponent.java:140)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
Comment 5 Jesse Glick 2011-04-20 23:30:50 UTC
core-main #79fa6f7499cd
Comment 6 Quality Engineering 2011-04-22 05:03:48 UTC
Integrated into 'main-golden', will be available in build *201104220000* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main/rev/79fa6f7499cd
User: Jesse Glick <jglick@netbeans.org>
Log: #197920: Max CPU usage with displaying dependency graph