[
https://issues.apache.org/jira/browse/WICKET-6774?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17095417#comment-17095417
]
Thomas Heigl edited comment on WICKET-6774 at 4/29/20, 12:46 PM:
-----------------------------------------------------------------
Hi [~papegaaij]. Thanks a lot for your input! I have not considered
serialization impact and size of fields at all. I was just thinking in terms of
memory requirements of the objects stored and in this case the tradeoff is
probably worth it. When serialization overhead and object references are
considered, I'm not so sure this is a good idea anymore.
was (Author: thomas.heigl):
Hi [~papegaaij]. Thanks a lot for your input! I have not considered
serialization impact at all. I was just thinking in terms of memory
requirements and in this case the tradeoff is probably worth it. When
serialization overhead is considered, I'm not so sure this is a good idea
anymore.
> Separate model, behaviors and metadata into separate fields
> -----------------------------------------------------------
>
> Key: WICKET-6774
> URL: https://issues.apache.org/jira/browse/WICKET-6774
> Project: Wicket
> Issue Type: Improvement
> Components: wicket-core
> Affects Versions: 9.0.0-M5
> Reporter: Thomas Heigl
> Priority: Major
>
> 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)