[
https://issues.jboss.org/browse/JGRP-2042?page=com.atlassian.jira.plugin....
]
Bela Ban edited comment on JGRP-2042 at 7/14/16 3:08 AM:
---------------------------------------------------------
Hmm, we could create an abstract method {{Header.getMagicId()}} which returns a constant
magic ID. When {{ClassConfigurator}} is initialized, it would check that the magic IDs
defined in {{jg-magic-map.xml}} actually match the ones returned by {{getId()}}. In case
of a mismatch, an exception would be thrown.
Downside: when IDs change, the corresponding header classes have to be changed, too.
Upside: faster serialization (eliminating 1 hashmap lookup for the magic ID). We only have
a limited number of header classes anyway.
was (Author: belaban):
Hmm, we could create an abstract method {{Header.getId()}} which returns a constant magic
ID. When {{ClassConfigurator}} is initialized, it would check that the magic IDs defined
in {{jg-magic-map.xml}} actually match the ones returned by {{getId()}}. In case of a
mismatch, an exception would be thrown.
Downside: when IDs change, the corresponding header classes have to be changed, too.
Upside: faster serialization (eliminating 1 hashmap lookup for the magic ID). We only have
a limited number of header classes anyway.
Improve performance of Message#writeHeader
------------------------------------------
Key: JGRP-2042
URL:
https://issues.jboss.org/browse/JGRP-2042
Project: JGroups
Issue Type: Enhancement
Reporter: Sanne Grinovero
Assignee: Bela Ban
Priority: Minor
Fix For: 3.6.11, 4.0
The following stacktrace, taken with JFR, is highlighting a CPU consumer which could be
optimised.
{noformat}Stack Trace Sample Count Percentage(%)
java.util.IdentityHashMap.get(Object) 66 2.224
org.jgroups.conf.ClassConfigurator.getMagicNumber(Class) 66 2.224
org.jgroups.Message.writeHeader(Header, DataOutput) 66 2.224
{noformat}
One idea could be to use an ad-hoc implementation of Map which takes advantage of the key
being a {{Class}}. An interesting alternative would be to avoid the map lookup altogether,
by having the Header expose a method like "writeMagicNumber(DataInput to)".
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)