[infinispan-issues] [JBoss JIRA] (ISPN-3983) Remove some performance bottlenecks from ProtoStream
Adrian Nistor (JIRA)
issues at jboss.org
Mon Jan 12 09:36:49 EST 2015
[ https://issues.jboss.org/browse/ISPN-3983?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13031792#comment-13031792 ]
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)
More information about the infinispan-issues
mailing list