[ 
https://issues.apache.org/jira/browse/GEODE-6695?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16823608#comment-16823608
 ] 

Darrel Schneider commented on GEODE-6695:
-----------------------------------------

I prototyped a fix for this here: 

40a5c13db2aef0051abb2544089b1aa1bcbc1fb6

If reduced the amount of memory allocated by the put benchmark by 7%

> ClientProxyMembershipID.canonicalReference allocates lots of objects
> --------------------------------------------------------------------
>
>                 Key: GEODE-6695
>                 URL: https://issues.apache.org/jira/browse/GEODE-6695
>             Project: Geode
>          Issue Type: Improvement
>          Components: serialization
>            Reporter: Darrel Schneider
>            Assignee: Darrel Schneider
>            Priority: Major
>
> ClientProxyMembershipID.canonicalReference ends up allocating a large number 
> of objects that get garbage collected. The cause of this is that when it goes 
> to do a lookup on the ConcurrentHashMap to see if a canonical id exists, it 
> calls ClientProxyMembershipID.hashCode which in turn calls isDurable(). This 
> method calls getDistributedMember which does a deserialization of the 
> identity byte array which does lots of object allocations.
> I think we can instead check for a ClientProxyMembershipID whose uniqueId and 
> identity are equal. If we find one then we can use it as the canonical id. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to