[
https://issues.jboss.org/browse/ISPN-3983?page=com.atlassian.jira.plugin....
]
Adrian Nistor commented on ISPN-3983:
-------------------------------------
Many perf issue are due to extensive use of HashMap-like data structures in the
implementation. Improvements were done by replacing those with some simpler data
structures where it was possible. There is still one such data structure that cannot be
removed. It is used for buffering all fields that are 'seen' in the data stream
until they are actually read by the user code (implemetations of MessageMarshaller). The
problem is simillar to DOM vs SAX when it comes to xml parsing. The current implementation
uses internal data structures to represent and buffer the incomming stream of fields, much
like DOM. A better alternative would be to immediatelly inject the incoming fields
directly into the user entity (think SAX).
The new annotation based marshallers do exactly that and no longer have this perf
problem.
I think performance is decent now for MessageMarshaller implementations and maximal for
the annotation based barshallers, so we can close this.
Remove some performance bottlenecks from ProtoStream
----------------------------------------------------
Key: ISPN-3983
URL:
https://issues.jboss.org/browse/ISPN-3983
Project: Infinispan
Issue Type: Bug
Components: Remote Querying
Affects Versions: 6.0.0.Final
Reporter: Adrian Nistor
Assignee: Adrian Nistor
Labels: 6.3remotequeries, 630, 64QueryBlockers
Fix For: 7.1.0.CR1
Profiling has shown that there are many HashMaps created in MessageContext to help field
lookup by name.
Normally this is a static piece of information that should be computed only once when a
marshaller is registered and then it should become immutable and be reused.
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)