[ 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.