Redundant AttributeKey allocation resulting in high garbage collector activity
-------------------------------------------------------------------------------
Key: DIRMINA-838
URL: https://issues.apache.org/jira/browse/DIRMINA-838
Project: MINA
Issue Type: Improvement
Components: Filter
Affects Versions: 2.0.3
Environment: java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03, mixed mode)
Reporter: Platon Potapov
The classes CumulativeProtocolDecoder and ProtocolCodecFilter (there are others
too, but these two are the important ones for our project) have members of type
AttributeKey declared as:
private final AttributeKey ENCODER = new
AttributeKey(ProtocolCodecFilter.class, "encoder");
As can be seen, these are not static, so each time ProtocolCodecFilter is
created, AttributeKey objects get created as well, which in turn involves
creation of a lot of String and char[] objects. jProfiler indicates that
AttributeKey is accountable for creation of about 85% of all Strings and char[]
in runs of our project, so it makes a significant difference for us.
Is it OK for these attribute key objects to be singletons? If not, what would
take to make them singletons?
Some of other MINA filters have AttributeKeys as static members (e.g.
MdcInjectionFilter, SslFilter).
To summarize: the improvement being requested is to make the pre-defined
AttributeKey objects static within classes such as CumulativeProtocolDecoder
and ProtocolCodecFilter.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira