[ https://issues.apache.org/jira/browse/THRIFT-3839?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Myroslav Kosinskyi updated THRIFT-3839: --------------------------------------- Description: I have found performance issue when tried to deserialize big thrift binary message with enabled thrift_protocol php extension. Messsage size was 10 mb and it took about 30 seconds to deserialize it. When i have done debug of php extension and php library i have found that issue is because small read buffer is used in TBufferedTransport and i cannot change it from TBinarySerializer::deserialize method. So i have added parameter $buffer_size to function thrift_protocol_read_binary from php extension. And also this parameter i have added to method TBinarySerializer::deserialize from php library. And i extended class Thrift\Transport\TMemoryBuffer by method putBack, so this class will be used for desearilization without TBufferedTransport warapper. After these changes it takes less than a second to deserizlize message with 10 mb size id read buffer 512 kb. Here is the pull request https://github.com/apache/thrift/pull/1014 was: I have found performance issue when tried to deserialize big thrift binary message with enabled thrift_protocol php extension. Messsage size was 10 mb and it took about 30 seconds to deserialize it. When i have done debug of php extension and php library i have found that issue is because small read buffer is used in TBufferedTransport and i cannot change it from TBinarySerializer::deserialize method. So i have added parameter $buffer_size to function thrift_protocol_read_binary from php extension. And also this parameter i have added to method TBinarySerializer::deserialize from php library. And i extended class Thrift\Transport\TMemoryBuffer by method putBack, so this class will be used for desearilization without TBufferedTransport warapper. After these changes it takes less than a second to deserizlize message with 10 mb size id read buffer 512 kb. > Performance issue with big message deserialization using php extension > ---------------------------------------------------------------------- > > Key: THRIFT-3839 > URL: https://issues.apache.org/jira/browse/THRIFT-3839 > Project: Thrift > Issue Type: Improvement > Components: PHP - Library > Affects Versions: 0.9.3, 1.0 > Reporter: Myroslav Kosinskyi > Fix For: 1.0 > > > I have found performance issue when tried to deserialize big thrift binary > message with enabled thrift_protocol php extension. > Messsage size was 10 mb and it took about 30 seconds to deserialize it. > When i have done debug of php extension and php library i have found that > issue is because small read buffer is used in TBufferedTransport and i cannot > change it from TBinarySerializer::deserialize method. > So i have added parameter $buffer_size to function > thrift_protocol_read_binary from php extension. > And also this parameter i have added to method TBinarySerializer::deserialize > from php library. > And i extended class Thrift\Transport\TMemoryBuffer by method putBack, so > this class will be used for desearilization without TBufferedTransport > warapper. > After these changes it takes less than a second to deserizlize message with > 10 mb size id read buffer 512 kb. > Here is the pull request https://github.com/apache/thrift/pull/1014 -- This message was sent by Atlassian JIRA (v6.3.4#6332)