[ 
https://issues.apache.org/jira/browse/AVRO-934?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Doug Cutting updated AVRO-934:
------------------------------

       Resolution: Fixed
    Fix Version/s:     (was: 1.5.4)
                   1.6.0
         Assignee: A B
           Status: Resolved  (was: Patch Available)

I committed this.  Thanks!
                
> Avro PHP has a performance issue - it appears to operate in O(N^2) time when 
> decoding messages
> ----------------------------------------------------------------------------------------------
>
>                 Key: AVRO-934
>                 URL: https://issues.apache.org/jira/browse/AVRO-934
>             Project: Avro
>          Issue Type: Improvement
>          Components: php
>    Affects Versions: 1.5.4
>         Environment: PHP 5.3.8, Windows or OSX
>            Reporter: A B
>            Assignee: A B
>              Labels: avro, php
>             Fix For: 1.6.0
>
>         Attachments: 1.patch
>
>
> While decoding simple requests, observed that the time to decode was growing 
> much faster than expected. A 25k file would take 3 seconds to decode while a 
> 570k file was taking approximately 45 minutes. The Ruby implementation does 
> not exhibit a similar issue; above 570k file takes about 3 seconds to decode. 
> Profiled the code and found that the problem lies in AvroStringIO::read($len) 
> - repeated calls to array_slice seem to cause the issue. Replaced the call to 
> array_slice with the following and now the 570k file is processed in about 5 
> seconds. I will submit the patch shortly as well but here is the new code:
> class AvroStringIO extends AvroIO
> {
> ...
> public function read($len)
>   {
>     $this->check_closed();
>     //$read = array_slice($this->buffer, $this->current_index, $len);
>       $read=array();
>       for($i=$this->current_index; $i<($this->current_index+$len); $i++) 
>               $read []=$this->buffer[$i];
> ...

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to