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 228623 - Don't block the Debugger until all watches/variables are evaluated
Summary: Don't block the Debugger until all watches/variables are evaluated
Status: NEW
Alias: None
Product: debugger
Classification: Unclassified
Component: Java (show other bugs)
Version: 7.4
Hardware: PC Windows XP
: P3 normal with 2 votes (vote)
Assignee: Martin Entlicher
URL:
Keywords: PERFORMANCE
Depends on:
Blocks:
 
Reported: 2013-04-16 13:59 UTC by crazyjavahacking
Modified: 2015-09-04 13:57 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description crazyjavahacking 2013-04-16 13:59:14 UTC
Don't block thee Debugger until all watches/variables are evaluated! This becomes after some time very serious usability issue.

I am working on quite big Maven Java SE multimodule project and after some debugging time it is just blocking the UI after pretty much every debugger step! The UI is not responding until all variables/watches are evaluated. This is very unlikely related to GC as I am never using more than 350MB from 500MB of heap. After closing Watches and Variables windows, the IDE is responsive again.

This makes NetBeans almost unusable. At least there could be an option for that in Options. I would rather wait for evaluation after I really need in every debugger step.

applies to both:
NetBeans 7.3              & JDK 6u29
NetBeans Dev 201304152301 & JDK 7u3
Comment 1 crazyjavahacking 2013-04-16 14:00:46 UTC
Correction: "I would rather wait for evaluation after I really need it than in every debugger step."
Comment 2 crazyjavahacking 2013-04-16 14:17:09 UTC
It looks like that the internal structure of objects is partially causing this problem. There are quite many fields and many of them are of the same type, arrays or collections of the same type.

I assume that as part of the evaluation of any object/variable/watch, all fields are evaluated recursively. Then in this situation the complicated internal structure is causing the latency (which is about 5 seconds on my machine).

Would be nice if there would be an option to only evaluate first level of fields, e.g. not collections, arrays, or any other object fields. Or ability to set the evaluation level to some constant.
Comment 3 Martin Entlicher 2013-04-18 12:03:45 UTC
There were already applied changes to make stepping as fast as possible in issue #186517.
I'll try to check if we can do something more. Once an evaluation is started, it can not be canceled and we need to wait till it's processed. Maybe we can do less parallelism and also try to stop evaluation of variable formatters sooner.
Comment 4 Martin Entlicher 2013-08-21 13:56:12 UTC
I've found this to be too risky to make changes to the evaluation process into NetBeans 7.4.
If you click on "Open Formatters Option" icon on the left side in Variables window, you can uncheck any formatters, that are expensive for you.

I'm scheduling this for the next release, to evaluate more points where we could break the evaluation and possibly stop also running formatters.