VW Performance

Visual Web Performance



Quy Nguyen


This page details the performance improvement efforts for Visual Web 6.0. Since Visual Web will be integrated with NetBeans, the primary focus with regards to performance is the impact of VWP on the IDE as a whole.


  • Fix memory leaks
  • Reduce impact of VW on the IDE's performance
  • Reduce memory footprint of VW features
  • Fix regressions from previous versions.


Available test data:

  • project creation
  • page creation
  • drop table onto page
  • drop button onto page
  • bind database to table

Memory Footprint

TBD (Issues related to Visual Web's memory footprint)

Memory Leaks

Memory leaks were discovered using JProfiler on both VWP 5.5.1 and 6.0.

  • DesignBean objects leak in insync.markup.MarkupUnit due to designer markup elements not being collected
  • DesignBeanNode/DesignerTopComp leak in OutlineTopComponent
  • Document leak in designer.cssengine.CSSEngineServiceImpl due to circular reference in WeakHashMap
  • DesignerTopComp leak due to SelectionTopComp$CBListener not being unregistered
  • designer.jsf.BeanModifyListener never unreferences FacesDesignBean
  • designer.markup.*ElementImpl objects (related to MarkupUnit issue) possibly circularly referenced from FacesBean and MarkupProperty

See Quy for profiler output for each issue.


Related Issues

Issuezilla issues under the visualweb component related to performance

Performance Tasks Targeted for NB 6.1

Description Owner Expected Outcome Issue(s) Status
1 Memory Leak Fixes See sub-issues 123530 Ongoing
2 Woodstock 4.1.1 Performance fix Mary 123390 Complete
3 Woodstock - trim TLD descriptions Mary 10% on page open 123521  ?
4 Optimizing BeanInfo Lookup Sandip > 50% improvement for page open and table drop 123532 Complete
5 On-demand binding attribute Winston Preliminary Results 123536 Complete
6 Avoid syncing pages when opening Page Flow Editor Joelle > 50% on opening PFE 123534 Complete
7 Improve Designer Layout Computation Peter Z.  ??? 123411 123410 Complete
8 Show wait cursor when loading pages Quy Better user feedback 124928 Complete
9 Cache metadata by Serializing a ResultSet John B >20% on page open ( raw data) 123537 Complete
10 Avoid modeling of VW pages at IDE startup if open in editor Peter Z Improves IDE startup 124931 Complete

Other Performance Task Candidates (Not targeted for 6.1)

User View, JSF Container Winston
Winston's Bean mapping algorithm Sandip 3
Application Outline UI (Action) Sandip 8
On-demand managed bean cross reference
Code generation Deva 3
GUI Sandip 3
Api to supportGUI Deva 3
Database metadata caching
Suppress expression evaluation @ design time Sandip
ToolTips for long expressions Peter
Cache metadata by Serializing Result Set John
Cache metadata for old projects using JPA John
JPA support
Entity generation already available in NB
Finish JPA consumption spec Winston
JPA Implementation John B, xxx
Use JSP parser in web/core
API requirement spec Sandip
Insync implementation Sandip
Batik upgrade
Investigate latest Batik version for possible upgrade Peter

Other ideas (probably not practical)

  • Mock container initialization
  • Removing backing bean? (probably not much payoff)
Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo