[
https://issues.apache.org/jira/browse/THRIFT-831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12894183#action_12894183
]
Jeremy Hanna commented on THRIFT-831:
-------------------------------------
I compiled trunk + this patch and changed the CassandraDaemon to use
TFramedTransportWithReusableBuffer instead of TFramedTransport. When running
the unit tests, a couple of tests timed out where it was using the thrift
client. Also, the set of system/integration tests that do stuff with the
python client all appear to be timing out.
> FramedTransport implementation that reuses its buffers
> ------------------------------------------------------
>
> Key: THRIFT-831
> URL: https://issues.apache.org/jira/browse/THRIFT-831
> Project: Thrift
> Issue Type: New Feature
> Components: Library (Java)
> Reporter: Bryan Duxbury
> Assignee: Bryan Duxbury
> Fix For: 0.4
>
> Attachments: thrift-831.patch
>
>
> The current version of TFramedTransport allocates new read and write buffers
> every time a frame is read or written. This is wasteful, leading to expensive
> byte[] allocations, soaking up cpu and GC time unnecessarily.
> It would be handy to have an implementation that automatically reuses
> existing buffers if they're big enough, and grows them as appropriate. My
> testing shows this to be as much as a 60% reduction in CPU cost in dealing
> with the transport.
> I think it's important for us to keep separate implementations available,
> since different applications might prefer to spend the CPU time to avoid
> having a big chunk of memory permanently allocated.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.