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 21975

Summary: Debugger loads too many classes on startup
Product: debugger Reporter: Jaroslav Tulach <jtulach>
Component: CodeAssignee: issues@debugger <issues>
Status: CLOSED FIXED    
Severity: blocker Keywords: PERFORMANCE
Priority: P2    
Version: 3.x   
Hardware: PC   
OS: Linux   
Issue Type: TASK Exception Reporter:
Bug Depends on: 18290, 28625    
Bug Blocks: 21676, 26764    

Description Jaroslav Tulach 2002-03-29 14:38:57 UTC
As part of issue 21676 I have investigated what will happen when
ModuleInstall.restore of modules will be called but nothing else. Applied the
patch in issue 21676 and started the IDE with 

-J-Dskip.toolbars=true -J-Dskip.loaders=true -J-Dskip.shortcuts=true
-J-Dnetbeans.full.hack=full -J-Dskip.menu=true

Following classes has been loaded, please investigate why and make sure that
they will not:

org.netbeans.modules.debugger.AbstractDebugger
org.netbeans.modules.debugger.BreakpointProducer
org.netbeans.modules.debugger.ConnectSupport
org.netbeans.modules.debugger.CoreBreakpoint
org.netbeans.modules.debugger.CoreBreakpoint$Event
org.netbeans.modules.debugger.CoreDebugger
org.netbeans.modules.debugger.DebuggerCoreImpl
org.netbeans.modules.debugger.DebuggerImpl
org.netbeans.modules.debugger.debug.ToolsDebuggerImpl
org.netbeans.modules.debugger.debug.ToolsDebuggerModule
org.netbeans.modules.debugger.delegator.DelegatingDebugger
org.netbeans.modules.debugger.delegator.DelegatingDebuggerImpl
org.netbeans.modules.debugger.EventsProducer
org.netbeans.modules.debugger.GUIManager
org.netbeans.modules.debugger.GUIManager$View
org.netbeans.modules.debugger.jpda.JPDADebugger
org.netbeans.modules.debugger.jpda.JPDADebuggerImpl
org.netbeans.modules.debugger.jpda.JPDADebuggerModule
org.netbeans.modules.debugger.jpda.util.Executor
org.netbeans.modules.debugger.multisession.EnterpriseDebugger
org.netbeans.modules.debugger.multisession.EnterpriseModule
org.netbeans.modules.debugger.NodesRegistry
org.netbeans.modules.debugger.Register
org.netbeans.modules.debugger.State
org.netbeans.modules.debugger.support.actions.AddWatchPerformer
org.netbeans.modules.debugger.support.actions.DebuggerWindowAction
org.netbeans.modules.debugger.support.actions.DebuggerWindowPerformer
org.netbeans.modules.debugger.support.actions.SuspendResumeSupport
org.netbeans.modules.debugger.support.DebuggerContextSettings
org.netbeans.modules.debugger.support.DebuggerContextSettingsBeanInfo
org.netbeans.modules.debugger.support.DebuggerImplSupport
org.netbeans.modules.debugger.support.DebuggerModule
org.netbeans.modules.debugger.support.DebuggerProjectSettings
org.netbeans.modules.debugger.support.DebuggerProjectSettingsBeanInfo
org.netbeans.modules.debugger.support.DebuggerSettings
org.netbeans.modules.debugger.support.DebuggerSupport
org.netbeans.modules.debugger.support.DWOrientation
org.netbeans.modules.debugger.support.java.ActionTIEditor
org.netbeans.modules.debugger.support.java.JavaDebugger
org.netbeans.modules.debugger.support.java.JavaDebuggerSettings
org.netbeans.modules.debugger.support.java.JavaDebuggerSettingsBeanInfo
org.netbeans.modules.debugger.support.java.LoadedClassesProducer
org.netbeans.modules.debugger.support.nodes.DebuggerNode
org.netbeans.modules.debugger.support.nodes.DebuggerWindow
org.netbeans.modules.debugger.support.SecondaryDebuggerSupport
org.netbeans.modules.debugger.support.SharedIO
org.netbeans.modules.debugger.support.StateSupport
org.netbeans.modules.debugger.support.util.ValidatorImpl
org.netbeans.modules.debugger.support.View2
org.netbeans.modules.debugger.support.View2Support
org.netbeans.modules.debugger.support.WorkspaceEditor
org.netbeans.modules.debugger.ThreadsRoot
org.netbeans.modules.debugger.Validator
org.netbeans.modules.debugger.ValidatorHolder
org.netbeans.modules.debugger.VariablesRoot
Comment 1 Jan Jancura 2002-04-12 16:32:39 UTC
Not easy to fix. We must deserialize list of breakpoints (it means
meny classes from debugger module) wich should be visible in editor.
It means that we can not improve our startup is 80% of IDE starts
(editor is typically visible after startup).
Comment 2 Jaroslav Tulach 2002-04-13 14:17:05 UTC
Hanzi, I do not think that all the classes here are loaded just
because of deserialization of breakpoint. I would be very thankfull if
you could investigate reasons for all the classes. If you believe
something is separate (and moreover design) issue, feel free to create
a subissue, but please investigate the rest.
Comment 3 Jan Jancura 2002-04-15 14:51:00 UTC
I can not simply fix it to NB3.4 - we need some changes in openide -
see "depends" section.
Comment 4 Jan Jancura 2002-04-15 14:54:37 UTC
I can not simply fix it to NB3.4 - we need some changes in openide -
see "depends" section.

=>> NB4.0
Comment 5 Jaroslav Tulach 2002-04-18 10:54:41 UTC
Dear Hanz. I understand that some problems are hard to fix but I am
sure that some of them are not. Because this is a performance bug I
want us to better understand which we can address in 3.4 version and
for which of them we have to prepare solution for 4.0 in the
architecture. So please evaluate and divide classes listed here into
subissues with reasons why they have to be loaded on startup. 

To express exactly what is in my mind: I am pretty sure that
GUIManager$View is not initalized due to deserialization of breakpoints.
Comment 6 Jan Jancura 2002-04-19 17:24:49 UTC
Grr.
I do not see there any simple solution now. There are several problems:
1) we use module install for some registration
[Loaded org.netbeans.modules.debugger.DebuggerImpl]
[Loaded org.netbeans.modules.debugger.EventsProducer]
[Loaded org.netbeans.modules.debugger.support.DebuggerImplSupport]
[Loaded org.netbeans.modules.debugger.ConnectSupport]
[Loaded org.netbeans.modules.debugger.jpda.JPDADebuggerImpl]
[Loaded org.netbeans.modules.debugger.GUIManager$View]
[Loaded org.netbeans.modules.debugger.support.View2]
[Loaded org.netbeans.modules.debugger.support.View2Support]
[Loaded org.netbeans.modules.debugger.Register]
[Loaded org.netbeans.modules.debugger.DebuggerCoreImpl]
[Loaded org.netbeans.modules.debugger.delegator.DelegatingDebuggerImpl]
[Loaded org.netbeans.modules.debugger.CoreBreakpoint$Event]
we can move this registration to layers, but not for NB3.4 - we do not
have it in plan ;(

2) other classes are loaded when first debugger action is created and
isEnabled () action teste if there is some debugger running.
not easy to fix too....

3) but the biggest problem is loading of breakpoints.

that is why we can not fix it during regular development. We need mor
time for it (at least 3 weeks I think).

so => FRE

I promise that if we will have time I will look at it.
(I will add it to our plan)



Comment 7 Marek Grummich 2002-07-22 09:20:18 UTC
Target milestone was changed from '3.4' to TBD.
Comment 8 Marek Grummich 2002-07-22 09:22:01 UTC
Target milestone was changed from '3.4' to TBD.
Comment 9 Jan Jancura 2003-06-09 15:32:04 UTC
fixed in projects branch
Comment 10 Quality Engineering 2010-04-29 09:09:54 UTC
Verified ... and Closing all issues resolved into NetBeans 6.7 and earlier.