Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Invalid
-
9.0.0-M5
-
None
-
None
Description
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.
Attachments
Issue Links
- is a clone of
-
WICKET-6774 Separate model, behaviors and metadata into separate fields
- Open