Ir para conteúdo
Fórum Script Brasil
  • 0

6 segundos


Frank K Hosaka

Pergunta

6 segundos é o tempo que o PHP gasta para montar um balancete. Eu acho isso bem rápido.

O problema é que eu tenho a mesma rotina no Laravel, mas ele gastou 18 segundos. Isso é um absurdo!

Fiquei imaginando se o Eloquent é bem mais lento que o msqli ou o PDO.

Para fazer auditoria, eu coloquei os seguinte comandos na function balancete(  )

<?php
function balancete()
{
	$tempo1=microtime(true);
	// ...
	$tempo2=microtime(true);
	var_dump($tempo2-$tempo1);exit; (no Laravel: dd($tempo2-tempo1); )
}

Os dois levaram 3 segundos, ou seja, o Eloquent é tão bom quanto o mysqli ou o PDO.

Ou seja, o problema estava na renderização, e assim eu encontrei o probema no Laravel:

<?php
function inicio (Request $request)
    {
        $balancete=$this->balancete()->balancete;
        $apuracao=$this->balancete()->apuracao;
        $anterior=$this->balancete()->anterior;
        $receita=$this->balancete()->receita;
        $despesa=$this->balancete()->despesa;
        $resultado=$this->balancete()->resultado;
        $nota=$this->balancete()->nota;
        return view('balanceteView',['balancete'=>$balancete,
            'apuracao'=>$apuracao,'anterior'=>$anterior,'despesa'=>$despesa,
            'receita'=>$receita,'resultado'=>$resultado,'nota'=>$nota]);
    }

Esse é um erro bem besta. Aqui eu pedi para o Laravel executar a função balancete( ) sete vezes, quando o correto é apenas uma vez assim:
 

<?php
function inicio (Request $request)
    {
        $previa=$this->balancete();
        $balancete=$previa->balancete;
        $apuracao=$previa->apuracao;
        $anterior=$previa->anterior;
        $receita=$previa->receita;
        $despesa=$previa->despesa;
        $resultado=$previa->resultado;
        $nota=$previa->nota;
        return view('balanceteView',['balancete'=>$balancete,
            'apuracao'=>$apuracao,'anterior'=>$anterior,'despesa'=>$despesa,
            'receita'=>$receita,'resultado'=>$resultado,'nota'=>$nota]);
    }

Moral da história: se um programa está lento demais, provavelmente o problema é aquela pecinha que fica na frente do monitor.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,8k
×
×
  • Criar Novo...