You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Alexander (Jira)" <ji...@apache.org> on 2020/05/25 08:51:00 UTC
[jira] [Created] (WICKET-6790) CLONE - Separate model, behaviors
and metadata into separate fields
Alexander created WICKET-6790:
---------------------------------
Summary: CLONE - Separate model, behaviors and metadata into separate fields
Key: WICKET-6790
URL: https://issues.apache.org/jira/browse/WICKET-6790
Project: Wicket
Issue Type: Improvement
Components: wicket-core
Affects Versions: 9.0.0-M5
Reporter: Alexander
While investigating performance issues with metadata in WICKET-6771, I discovered that significant performance gains can be achieved by separating models, behaviors, and metadata into separate fields.
Currently, all three types of data are stored in a single, untyped field {{Component.data}}. The idea is to minimize memory overhead by creating as few objects as possible.
If a model or a single behavior or metadata is added, {{data}} stores only a reference to the object. When additional data is added, the reference becomes an array.
This is the most memory-efficient way to store these three types of data. But it comes with a cost: code to manipulate that data structure is complex and not as efficient because it has to take all possible combinations of data into account.
I suggest introducing 3 separate fields for the 3 types of data, trading a little bit of memory for reduced complexity and performance gains.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)