Muito obrigado pelas respostas. Vou-me entreter a encontrar um profiler que
faça o ..profiling de PHP e amfphp.




MV





2012/9/10 João Fernandes <[email protected]>

> Miguel por isso é que te referi um profiler pois este vai analisar todo o
> codigo que é executado (incluindo o do AMFPHP) e vai te descriminar o tempo
> que leva a executar cada função.
>
> 2012/9/10 Miguel Vaz <[email protected]>
>
>>
>> Sim, entendo. Mas o AMFPHP não funciona a nível de servidor? O argumento
>> é correcto, o Charles não analisa o tempo de flex.
>> Não existe a necessidade de um profiler, o meu método no PHP tem um timer
>> interno também, conforme referi, que marca apenas 0.5s desde a chamada da
>> função à linha antes do return.
>>
>> Posso executar o método directamente no servidor e medir o tempo...ora 1
>> minuto e vai já o resultado neste e-mail:
>>
>> - Se executar o método directamente, o resultado é de 0.57s. O problema
>> encontra-se no AMFPHP, portanto. Agora onde exactamente... parece-me que o
>> amfphp está com dificuldade em "digerir" os registos - quantos mais forem,
>> mais lento fica.
>>
>> Nenhuma outra sugestão?
>>
>> Miguel Vaz
>>
>>
>>
>>
>> 2012/9/10 João Fernandes <[email protected]>
>>
>>> Se o charles te indica 4.7 s então o problema encontra-se server-side
>>> pois o charles analisa o tempo de resposta do servidor e não consegue medir
>>> a parte de serialização por parte do flash player.
>>>
>>> Existe algum programa de profiling para PHP? Sem dúvida seria onde eu
>>> iria dedicar o meu tempo, nada como um bom profiler para encontrar o código
>>> culpado.
>>>
>>> João Fernandes
>>>
>>>
>>> 2012/9/10 Miguel Vaz <[email protected]>
>>>
>>>> Obrigado pelas respostas.
>>>>
>>>> O teste que descrevi é devidamente acompanhado pelo Charles, que
>>>> reporta um tempo de 4.7s na mesma chamada.
>>>>
>>>> Permite-me discordar sobre o que dizes sobre o teste de uma query com
>>>> apenas 1 registo. Considero importante já que, embora não seja
>>>> quantificável como query, é-o como teste de tempo de serialização pelo
>>>> número de registos. Ou seja, se o número de registos muda, o tempo
>>>> altera-se drasticamente, o que deveria demonstrar (ou refutar) algo - que
>>>> infelizmente ainda não sei o quê. :-P
>>>>
>>>> O meu VO é simples:
>>>>
>>>> PHP
>>>>
>>>> <?php
>>>>     class voEmail {
>>>>         public $id_email;
>>>>         public $email;
>>>>         public $nome;
>>>> public $id_user;
>>>>  public $obs;
>>>>     }
>>>> ?>
>>>>
>>>> Flex:
>>>>
>>>> package vo
>>>> {
>>>> [Bindable]
>>>> public class emailVO
>>>> {
>>>>  public var id_email:int;
>>>> public var id_user:int;
>>>> public var nome:String;
>>>>  public var email:String;
>>>> public var obs:String;
>>>> }
>>>> }
>>>>
>>>> Pelos testes, parece-me seguro inferir que o problema está na
>>>> serialização, algures no AMFPHP ou já no Flex. Agora acho absurdo acontecer
>>>> num projecto limpo. E já testei em ambiente de desenvolvimento
>>>> local(windows, etc) e produção (linux, etc.) com os mesmos
>>>> resultados/problemas.
>>>>
>>>>
>>>>
>>>> Miguel Vaz
>>>>
>>>>
>>>>
>>>> 2012/9/10 João Fernandes <[email protected]>
>>>>
>>>>> Nunca usei AMFPHP mas se fosse a ti analisava com o charles proxy o
>>>>> tempo de resposta do servidor relativamente a esse request.
>>>>> O problema poderia ser do flex caso te indicasse que o tempo de
>>>>> resposta do servidor fosse o caso mas caso não se confirme, poderá ser sim
>>>>> da conversão de objectos PHP para AMF bytecode.
>>>>>
>>>>> Sei que no CF por exemplo existiram várias melhorias relativas ao
>>>>> melhoramento da serialização/deserialização tais como:
>>>>> Substituir AS > JAVA > CF por AS > CF
>>>>> Uso do scope "This" em vez de getters/setters
>>>>> Uso de objectos anónimos em vez de converter a query para uma lista de
>>>>> objectos que posteriormente teriam de ser convertidos para AMF.
>>>>>
>>>>> Certamente existirão formas de melhorar o desempenho de resposta mas
>>>>> com AMFPHP desconheço para te ser sincero. Talvez o João Saleiro te 
>>>>> consiga
>>>>> ajudar (ou outros que tenham experiência com AMFPHP).
>>>>>
>>>>> 2012/9/10 Miguel Vaz <[email protected]>
>>>>>
>>>>>>  Boa tarde,
>>>>>>
>>>>>> Realizei alguns testes ao nivel do AMFPHP e estou a ter alguma
>>>>>> (demasiada) lentidão na recepção dos dados.
>>>>>> O código de testes é um mero remoteobject directo com um serviço em
>>>>>> PHP que envia resultados de um query numa BD MySQL para o Flex. Tenho um
>>>>>> button que faz trigger à chamada e ao timer e um método de retorno para
>>>>>> popular uma datagrid (não interfere na performance..).
>>>>>>
>>>>>> resultados:
>>>>>>
>>>>>> - O tempo da query (tem cerca de 4500 registos) ronda os *0,26s*
>>>>>> - O tempo de método no PHP ronda os *0,5s*
>>>>>> - O tempo entre clique na aplicação Flex e retorno dos dados é de
>>>>>> quase *5s*
>>>>>>
>>>>>> Testei uma query de apenas um elemento e o tempo total (do clique no
>>>>>> botão ao retorno do serviço) é quase imediato (<1s), o que me leva a
>>>>>> apontar o dedo ao tempo de serialização, ou do AMFPHP ou no Flex - não
>>>>>> consigo identificar o culpado.
>>>>>>
>>>>>> Aborrece-me considerando que não é falta de optimização de código ou
>>>>>> query, mas apenas algo no Flex ou AMFPHP.
>>>>>>
>>>>>> Alguém tem algum problema de performance com AMFPHP? Já notaram esta
>>>>>> situação? Dicas? Sugestões? Já tenho as chamadas a utilizar VOs (que 
>>>>>> embora
>>>>>> boa prática praticamente não interfere com os tempos)
>>>>>>
>>>>>> Obrigado.
>>>>>>
>>>>>> Miguel Vaz
>>>>>>
>>>>>> --
>>>>>> Recebeu esta mensagem porque está inscrito no grupo "Mailing List da
>>>>>> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org"
>>>>>> dos Grupos do Google.
>>>>>> Para publicar uma mensagem neste grupo, envie um e-mail para
>>>>>> [email protected].
>>>>>> Para anular a inscrição neste grupo, envie um e-mail para
>>>>>> [email protected].
>>>>>> Para ver mais opções, visite este grupo em
>>>>>> http://groups.google.com/group/riapt?hl=pt-PT.
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> João Fernandes
>>>>>
>>>>> --
>>>>> Recebeu esta mensagem porque está inscrito no grupo "Mailing List da
>>>>> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org"
>>>>> dos Grupos do Google.
>>>>> Para publicar uma mensagem neste grupo, envie um e-mail para
>>>>> [email protected].
>>>>> Para anular a inscrição neste grupo, envie um e-mail para
>>>>> [email protected].
>>>>> Para ver mais opções, visite este grupo em
>>>>> http://groups.google.com/group/riapt?hl=pt-PT.
>>>>>
>>>>
>>>>  --
>>>> Recebeu esta mensagem porque está inscrito no grupo "Mailing List da
>>>> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org"
>>>> dos Grupos do Google.
>>>> Para publicar uma mensagem neste grupo, envie um e-mail para
>>>> [email protected].
>>>> Para anular a inscrição neste grupo, envie um e-mail para
>>>> [email protected].
>>>> Para ver mais opções, visite este grupo em
>>>> http://groups.google.com/group/riapt?hl=pt-PT.
>>>>
>>>
>>>
>>>
>>> --
>>>
>>> João Fernandes
>>>
>>> --
>>> Recebeu esta mensagem porque está inscrito no grupo "Mailing List da
>>> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org"
>>> dos Grupos do Google.
>>> Para publicar uma mensagem neste grupo, envie um e-mail para
>>> [email protected].
>>> Para anular a inscrição neste grupo, envie um e-mail para
>>> [email protected].
>>> Para ver mais opções, visite este grupo em
>>> http://groups.google.com/group/riapt?hl=pt-PT.
>>>
>>
>>  --
>> Recebeu esta mensagem porque está inscrito no grupo "Mailing List da
>> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" dos
>> Grupos do Google.
>> Para publicar uma mensagem neste grupo, envie um e-mail para
>> [email protected].
>> Para anular a inscrição neste grupo, envie um e-mail para
>> [email protected].
>> Para ver mais opções, visite este grupo em
>> http://groups.google.com/group/riapt?hl=pt-PT.
>>
>
>
>
> --
>
> João Fernandes
>
> --
> Recebeu esta mensagem porque está inscrito no grupo "Mailing List da
> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" dos
> Grupos do Google.
> Para publicar uma mensagem neste grupo, envie um e-mail para
> [email protected].
> Para anular a inscrição neste grupo, envie um e-mail para
> [email protected].
> Para ver mais opções, visite este grupo em
> http://groups.google.com/group/riapt?hl=pt-PT.
>

-- 
Recebeu esta mensagem porque está inscrito no grupo "Mailing List da Comunidade 
Portuguesa de Rich Internet Applications - www.riapt.org" dos Grupos do Google.

Para publicar uma mensagem neste grupo, envie um e-mail para 
[email protected].
Para anular a inscrição neste grupo, envie um e-mail para 
[email protected].
Para ver mais opções, visite este grupo em 
http://groups.google.com/group/riapt?hl=pt-PT.

Responder a