Thomas Heigl created WICKET-6830: ------------------------------------ Summary: Convert Behaviors into a static utility class to reduce allocations Key: WICKET-6830 URL: https://issues.apache.org/jira/browse/WICKET-6830 Project: Wicket Issue Type: Improvement Components: wicket-core Affects Versions: 9.0.0 Reporter: Thomas Heigl Assignee: Thomas Heigl Attachments: image-2020-09-13-11-07-51-274.png
Under moderate load, my application allocates hundreds of MiB a minute in {{Behaviors}} objects: !image-2020-09-13-11-07-51-274.png|width=362,height=376! {{Behaviors}} is a utility class to manage behaviors associated with components. Instead of expsosing static methods, {{Behaviors}} is instantiated with the target component instance on every invocation. E.g.: {code:java} new Behaviors(this).onRemove(this); {code} This is slightly "more OO" than a static utility class, but it allocates on every call. This can easily happen hundreds of times per request. I suggest to turn {{Behaviors}} into a simple static utility class and use it like this: {code:java} Behaviors.onRemove(this); {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)