VW Performance
Visual Web Performance
Contents |
Contacts
Description
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.
Goals
- Fix memory leaks
- Reduce impact of VW on the IDE's performance
- Reduce memory footprint of VW features
- Fix regressions from previous versions.
Performance
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.
Metrics
- VW Performance Dashboard Sun Internal
- Performance Tests 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)

