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

Reply via email to