PHP Performance Tuning: 12 dicas simples
em cada aplicação web PHP, o desempenho realmente importa. Os usuários reclamam de páginas de carregamento lento, páginas inacessíveis, links que não respondem e muitos outros fatores que levam à perda desses usuários como clientes. Para satisfazer as necessidades de seus usuários, o desempenho deve ser continuamente verificado e monitorado. Cada aplicativo de software precisa de ferramentas para monitorar e medir o desempenho do sistema. Aqui estão 12 dicas simples de ajuste de desempenho PHP.
PHP Dicas de Ajuste de Desempenho
Gargalos
O primeiro passo é identificar os obstáculos no desempenho da aplicação, a fim de encontrar a causa raiz do problema. Ao identificar o problema, você pode planejar e selecionar a melhor solução e opção possível para o seu aplicativo. Você pode então implementar a solução, e depois você pode medir os resultados. Você pode usar ferramentas como Prefix ou Retrace para ajustar o desempenho do PHP.
prefixo é usado para destacar consultas lentas, o que valida o comportamento do seu código e muito mais. Você deve reconhecer qual ferramenta de otimização pode ajudá-lo a medir o desempenho de seu aplicativo. Você também deve fazer uma lista das necessidades do seu aplicativo e encomendá-lo da prioridade mais alta para a mais baixa. Desta forma, você pode identificar que alguns itens não são importantes para se preocupar.
criação de perfil
uma dica para ajuste de desempenho PHP é criação de perfil. Existem muitas ferramentas de criação de perfil que você precisa identificar que atenderiam às suas necessidades. Cada profiler PHP tem suas próprias características e vantagens. Eu tenho navegado para um profiler PHP na internet e todo mundo tem suas próprias vantagens e desvantagens em usá-lo. Stackify tem prefixo que é usado como uma ferramenta de criação de perfil. Possui características únicas que permitem obter feedback contínuo sobre o desempenho do seu código do lado do servidor, SQL e outros métodos usados em seu sistema. O melhor e mais impressionante recurso do Prefix é que ele visualiza todo o pipeline de solicitações ao desenvolver aplicativos da web.
Depois de baixar e instalar o Prefixo, você pode ver diretamente informações sobre
- o tempo total necessário para atender a página
- houve um apanhado de exceção
- o código de status retornado foi 200
e outros detalhes importantes que você precisa para monitorar e saber sobre a sua aplicação.
otimização de código
um dos métodos de ajuste de desempenho do PHP para garantir a qualidade do seu código é ter o melhor processo e técnicas de otimização de código. Seu código pode ser otimizado para que ele utilize memória, execute mais rapidamente e também execute menos operações de entrada e saída. Mesmo que a otimização de código seja uma das melhores dicas de ajuste de desempenho do PHP, isso não significa que seu código deva ser complexo ou que você precise substituir qualquer biblioteca padrão. Às vezes, a otimização leva muito tempo para rastrear e manter o código. Na pior das hipóteses, essas otimizações não contribuem com nenhuma vantagem porque você está perdendo muito tempo otimizando partes não críticas de seu aplicativo.
a maioria dos aplicativos normalmente usa várias dependências, como serviços PaaS, ElasticSearch, Redis, filas, bancos de dados SQL & NoSQL, MongoDB e muito mais. O Prefix ajuda os desenvolvedores a entender se seu código está usando todas as dependências corretamente. Ele também permite que o desenvolvedor saiba como todas as dependências afetam o desempenho de seu aplicativo.
otimização de configuração
em qualquer aplicativo PHP, a primeira coisa que você faz é configurar a configuração e outros ambientes aplicáveis em seu aplicativo. Você pode adicionar tantos recursos que aumentam o desempenho do seu aplicativo e otimizam seu código, mas uma configuração adequada do seu ambiente de tempo de execução PHP também importaria. A otimização de configuração também permite otimizar o desempenho do seu aplicativo, além de garantir a confiabilidade e a relação custo-benefício do armazenamento do sistema de aplicativos. Alterar qualquer configuração do seu aplicativo pode fazer com que alguns aplicativos PHP parem de funcionar. É necessário que você entenda a ideia de modificar certas configurações, mas sempre tenha em mente que, ao desativar algo, você deve acompanhar suas alterações com um teste executado em seu ambiente.
computação distribuída
a computação distribuída é praticada para aumentar o potencial de execução paralela. Essa técnica pode aumentar a carga em recursos compartilhados mais provavelmente em sistemas de banco de dados. A maioria dos aplicativos da web tem problemas e problemas quando se trata de latência e distribuição de largura de banda, mas a computação distribuída pode ajudar a minimizar a latência e evitar gargalos. Dessa forma, a computação distribuída pode ser altamente benéfica para o seu sistema a partir de caches distribuídos. Dicas de cache serão o próximo tópico abaixo.
estratégia de cache
uma boa estratégia de cache poderia reduzir o número de operações de banco de dados e Compilação de código. Muitas vezes, é aconselhável usar o Memcache para reduzir a carga do banco de dados, o Cache PHP alternativo(APC) para cache de opcode e otimização de código. Há muitas opções quando falamos em cache no PHP opcode. Estes incluem APC (que é gratuito!), eAccelerator (grátis), XCache (grátis) e plataforma Zend. O Stackify usa primeiro o Cache gerenciado do Windows Azure, mas algumas reclamações foram recebidas. Então Stackify decidiu tentar Redis, que agora é suportado pelo Azure. O Redis é muito mais recomendado do que o Cache gerenciado do Windows Azure. Meu melhor conselho é avaliar adequadamente cada estratégia de cache para ver qual melhor atenderá às suas necessidades e fornecerá os melhores resultados.
balanceamento de carga
em um aplicativo da web, o balanceamento de carga não tem muito a ver com o aplicativo, mas afetará mais a hospedagem e a infraestrutura. No PHP, o balanceamento de carga é configurado nos plugins usando várias técnicas, como random, round-robin e user filter. Você também pode fazer alguma priorização quando se trata de atribuição do servidor; desta forma, alguma priorização pode ser útil em ambientes heterogêneos. A única coisa que você deve sempre ter em mente é que os objetos de sessão devem ser evitados, pois são armazenados na memória de sua máquina local. Dessa forma, a sincronização de seus dados pode ser enganosa durante o backup ou durante o processamento real dos dados.
além de evitar objetos de sessão, você também não deve armazenar arquivos como imagens no servidor. Seria melhor colocá-los na nuvem. Por fim, se você tiver servidores com a mesma configuração, lembre-se sempre de que alguns servidores são melhores do que outros na configuração de hardware.
na maioria dos casos, o principal problema com o balanceamento de carga é ao lidar com o banco de dados e a recuperação de backup. No Stackify, o balanceamento de carga não é um grande problema, pois otimiza a nuvem, o Azure para ser específico. A nuvem oferece um ambiente de recuperação de desastres que é configurado, pronto e dimensionado adequadamente quando necessário.
evite o lado do cliente
em todos os aplicativos da web, quando você tem tantos redirecionamentos de suas páginas, pode diminuir significativamente a velocidade da página. Sugere-se que você verifique e remova constantemente ou diminua o redirecionamento de suas páginas. Por outro lado, redirecionar os usuários para uma versão SSL da sua página não funcionará.
segurança (HTTP / 2 sobre SSL)
Hypertext Transfer Protocol é um protocolo de aplicativo que opera na camada TCP/IP. HTTP é responsável por estabelecer uma conexão entre servidor e cliente. Também é responsável pelo processamento de solicitações de usuários em uma página da web ou no navegador. Secure Socket Layer (SSL), por outro lado, é a versão segura do HTTP. A maior parte da comunicação entre servidor web e cliente está sendo criptografada por SSL.
na tecnologia de hoje, a maior parte do nosso navegador já suporta HTTP/2. Embora os navegadores suportem HTTP / 2, ele realmente tem limitações no lado do servidor.
SQL
um banco de dados é um dos elementos mais fundamentais em um aplicativo da web. No banco de dados SQL, você deve sempre entender como os recursos fundamentais funcionam corretamente. O SQL Server tem suas próprias visualizações de gerenciamento dinâmico (DMVs) integradas a ele. A maioria dos DVMs fornece dados sobre estatísticas de consulta, execução de planos e muito mais. O bom do DVMs é que ele está sempre disponível para fornecer estatísticas básicas de rollup, mas não consegue visualizar as consultas que estão sendo chamadas ao longo do tempo.
as ferramentas de gerenciamento de desempenho de aplicativos (APM) têm a capacidade de rastrear consultas SQL. O Retrace fornece consultas de rastreamento SQL em vários provedores de bancos de dados, incluindo o SQL Server. O Retrace também informa quantas vezes uma consulta foi executada e quais transações estão chamando. A vantagem mais relevante de usar o Retrace é que ele possui relatórios detalhados em aplicativos, por aplicativo e consulta. Ele pode mostrar transações detalhadas sobre como as consultas estão sendo usadas em seu aplicativo. Esta é a informação mais importante quando se trata de ajuste de desempenho PHP para SQL.
Content delivery network (CDN)
Content delivery network (CDN) é uma das formas mais eficientes e eficazes de acelerar a entrega de sites com alto tráfego e sites com alcance global. Muitas empresas já usam CDN ao lidar com sites de grande escala para aumentar o alcance geográfico. Essa técnica pode reduzir a latência, reduzir o consumo de largura de banda e proteger aplicativos, enquanto também pode bloquear spammers e outros scrappers de dados que podem atacar seu sistema.
tratamento de erros
o tratamento de erros é uma das partes mais importantes de qualquer desenvolvimento de aplicativos. PHP fornece diferentes técnicas e estratégias para lidar com erros. Eles permitem que você estabeleça suas próprias regras de tratamento de erros e modifique a maneira como os erros podem ser registrados. Isso permite que você desenvolva e melhore relatórios de erros que melhor atendam às suas necessidades.
a solução de problemas é uma dor de cabeça durante e após o desenvolvimento, e o Stackify projetou uma solução para o problema. O recurso mais poderoso do Retrace é o perfil de código, que pode até rastrear erros, mesmo se você não estiver registrando. Ele encontra erros ocultos em seu código e rapidamente fornece notificação por e-mail e SMS antes que todos os seus clientes sejam afetados. O monitoramento de erros no Retrace não é limitado apenas durante o desenvolvimento, mas também em seu ambiente de produção, e atualizará automaticamente novos erros e logs.
resumo
existem muitas ferramentas de monitoramento de desempenho disponíveis no mercado. Escolha o melhor para atender às suas necessidades em seu aplicativo.
o Stackify fornece muitos pacotes que todo desenvolvedor, administrador de sistemas ou mesmo administrador de banco de dados sempre acharia úteis. Usando nossos produtos Stackify, você pode facilmente monitorar, registrar, depurar dados e muito mais detalhes que encontrarão a causa raiz dos problemas de aplicativos da web e você se tornará mais produtivo. Você pode tentar verificar nosso teste gratuito agora.
mais informações
esses artigos fornecem informações adicionais sobre o ajuste de desempenho do PHP que podem ser úteis para seus aplicativos PHP.
- 18 Ferramentas PHP para desenvolvedores de todos os níveis
- Por Que a otimização prematura é a raiz de todo o mal
- otimização de desempenho da Web: Top 3 do Servidor e do Lado do Cliente Dicas de Desempenho
- Fundamentos de Web Testes de Desempenho de aplicações
- Comparação de 18 APM & Ferramentas de Monitoramento de aplicativos
- Sobre o Autor
- Posts mais Recentes
Sobre Julieta Mendez
Julieta Mendes é Professor no Departamento de informática e Ciências da Informação e doutorando especializada em Tecnologia da Informação. Ela tem formação em CCNA, programação de computadores como PHP, JAVA, desenvolvimento móvel e gerenciamento de projetos.
- Exibir Todos os Erros do PHP: Básico & de Uso Avançado – 27 de Março de 2020
- PHP Otimização de Desempenho de Guia de outubro 9, 2018
- 5 PHP Ferramentas de Teste de Desempenho que Você Precisa Saber – 26 de setembro de 2018
- Laravel Eloqüente Tutorial Com Exemplos – 24 de setembro de 2018
- Detalhada PHP Trater – agosto 20, 2018