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

ASF subversion and git services commented on GEODE-6166:
--------------------------------------------------------

Commit 2d6a6177daab59d3cf6ae8c3e78a884a4e1941c2 in geode's branch 
refs/heads/feature/GEODE-6143-5 from Jacob Barrett
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=2d6a617 ]

GEODE-6166: Improves put performance (#2970)

* Encode Operation ordinal in Message Part directly
* Don't allocate hashmap until we need it.
* Add putByte to Part and pre-allocate serialized form.
* Use Deque to avoid allocating lots of LinkedList.Node objects


> Reduce garbage production in put operation path
> -----------------------------------------------
>
>                 Key: GEODE-6166
>                 URL: https://issues.apache.org/jira/browse/GEODE-6166
>             Project: Geode
>          Issue Type: Improvement
>          Components: core
>            Reporter: Jacob S. Barrett
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.9.0
>
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> While debugging another issue I notice a less than optimal path for 
> serializing \{{Operation}} objects during puts and destroys. The class is 
> java.io.Serializable so it goes through  several checks to see if it can be 
> serialized another way before falling back to Java serialization. One of 
> these checks creates a few objects that are not necessary until later I the 
> function but after it would short circuit for {{Operation}}. Additionally, 
> the only member in the class that is non-transient is a byte field indicating 
> the ordinal. This results in a 64 byte Java serialization to transmit a byte. 
> Converting to DataSerializableFixedID poses a challenge with backwards 
> compatibility when deserializing a message sent as Java serializable. It also 
> costs about 4 bytes for a single byte [DSCODE (byte) + FIXED-ID (short) + 
> VALUE (byte)]. Writing a single byte to the message part costs a single byte 
> and makes detecting old clients sending objects trivial. 



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

Reply via email to