"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Aumentando a eficiência do PHP: técnicas comprovadas para otimização de desempenho

Aumentando a eficiência do PHP: técnicas comprovadas para otimização de desempenho

Publicado em 2024-11-08
Navegar:567

Boosting PHP Efficiency: Proven Techniques for Performance Optimization

A otimização do desempenho do PHP garante que nossos aplicativos da web funcionem sem problemas, respondam rapidamente e administrem o tráfego com eficiência. Abaixo está um guia passo a passo detalhado sobre como maximizar efetivamente o desempenho do PHP, com exemplos práticos para cada estratégia de otimização.


Parte 1: Atualização para a versão estável mais recente do PHP

Etapa 1: verifique a versão atual do PHP

Comece verificando a versão atual do PHP instalada em seu sistema:

php -v

Se sua versão estiver desatualizada, a atualização para a versão estável mais recente do PHP geralmente traz melhorias de desempenho e novos recursos.

Passo 2: Atualize o PHP (se necessário)

Para instalar a versão mais recente do PHP, execute os seguintes comandos para Ubuntu:

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt install php8.2 # Replace with the latest version

Por que?

Cada nova versão do PHP traz melhorias de desempenho. Por exemplo, o PHP 7.x oferece quase 50% de melhoria no tempo de execução em comparação com o PHP 5.x, e o PHP 8.x tem outras melhorias significativas.


Parte 2: Use o Cache Opcode (PHP Opcache)

Etapa 1: Habilitar Opcache em PHP

Opcache armazena bytecode de script pré-compilado na memória, reduzindo a necessidade do PHP carregar e analisar scripts em cada solicitação. Para habilitá-lo:

  1. Abra seu arquivo php.ini:
   sudo nano /etc/php/8.2/fpm/php.ini # Use your PHP version
  1. Encontre as configurações do Opcache e ative-as:
   opcache.enable=1
   opcache.memory_consumption=128
   opcache.max_accelerated_files=10000
   opcache.revalidate_freq=0
  1. Reinicie PHP-FPM e Nginx:
   sudo systemctl restart php8.2-fpm
   sudo systemctl restart nginx

Por que?

Opcache pode melhorar drasticamente o desempenho, eliminando a necessidade de compilar código PHP em cada solicitação, reduzindo significativamente o uso da CPU e o tempo de solicitação.


Parte 3: Otimizar consultas de banco de dados

Etapa 1: indexe suas tabelas de banco de dados

A indexação inadequada do banco de dados pode retardar a execução da consulta. Certifique-se de indexar colunas usadas em cláusulas WHERE ou para classificação.

Exemplo de consulta MySQL:

CREATE INDEX idx_user_email ON users(email);

Etapa 2: usar perfil de consulta

Crie um perfil de suas consultas de banco de dados para encontrar gargalos. O Eloquent ORM do Laravel, por exemplo, permite o perfil de consulta:

DB::enableQueryLog();
$users = DB::table('users')->get();
dd(DB::getQueryLog());

Por que?

Ao otimizar suas consultas de banco de dados e indexar colunas críticas, você pode reduzir bastante o tempo de execução de consultas, acelerando assim seu aplicativo PHP.


Parte 4: Habilitar compactação Gzip

Etapa 1: habilitar Gzip no Nginx

Gzip reduz o tamanho dos dados enviados do seu servidor para o cliente, tornando o carregamento da página mais rápido. Para habilitá-lo no Nginx:

  1. Abra o arquivo de configuração do Nginx:
   sudo nano /etc/nginx/nginx.conf
  1. Adicione as seguintes configurações de Gzip:
   gzip on;
   gzip_comp_level 2;
   gzip_types text/css application/javascript application/json image/svg xml;
   gzip_min_length 256;
  1. Salve e reinicie o Nginx:
   sudo systemctl restart nginx

Por que?

A ativação da compactação Gzip reduz a quantidade de dados que precisam ser transferidos, resultando em tempos de carregamento de página mais rápidos e redução no uso de largura de banda.


Parte 5: Use uma rede de distribuição de conteúdo (CDN)

Etapa 1: configurar um CDN para ativos estáticos

CDNs como Cloudflare ou Amazon CloudFront armazenam cópias de ativos estáticos como CSS, JavaScript e imagens em servidores distribuídos em todo o mundo, tornando-os disponíveis mais perto do usuário.

Exemplo:

Por que?

Ao transferir conteúdo estático para uma CDN, você reduz a carga em seu servidor e melhora drasticamente os tempos de resposta para usuários em todo o mundo.


Parte 6: Use PHP-FPM e ajuste

Etapa 1: instalar e configurar PHP-FPM

Certifique-se de usar PHP-FPM (FastCGI Process Manager), que é melhor otimizado para ambientes de alta carga:

sudo apt install php8.2-fpm

Etapa 2: ajustar as configurações do PHP-FPM

Você pode ajustar as configurações do PHP-FPM para lidar com solicitações mais eficientes ajustando as configurações pm.max_children, pm.start_servers, pm.min_spare_servers e pm.max_spare_servers no arquivo de configuração do pool PHP-FPM.

Edite o arquivo de configuração do pool:

sudo nano /etc/php/8.2/fpm/pool.d/www.conf

Aumentar pm.max_children com base na memória e no tráfego disponíveis:

pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

Reinicie PHP-FPM e Nginx:

sudo systemctl restart php8.2-fpm
sudo systemctl restart nginx

Por que?

PHP-FPM permite que seus processos PHP lidem com solicitações simultâneas de maneira mais eficiente, reduzindo o tempo de resposta do servidor sob carga pesada.


Parte 7: Minificar e agrupar ativos

Etapa 1: Minificar CSS, JavaScript e HTML

Minimizar seus arquivos CSS, JavaScript e HTML removendo espaços em branco e comentários desnecessários reduz o tamanho do arquivo.

Use ferramentas como Laravel Mix ou Gulp:

npm install laravel-mix --save-dev

Exemplo de arquivo webpack.mix.js para Laravel:

const mix = require('laravel-mix');

mix.js('resources/js/app.js', 'public/js')
    .sass('resources/sass/app.scss', 'public/css')
    .minify('public/js/app.js')
    .minify('public/css/app.css');

Etapa 2: ativar o cache do navegador

Em seu arquivo de configuração Nginx, adicione cache para ativos estáticos:

location ~* \.(css|js|jpg|jpeg|png|gif|ico|woff|woff2)$ {
    expires 1y;
    access_log off;
    add_header Cache-Control "public";
}

Por que?

Minimizar e agrupar ativos, além de ativar o cache do navegador, reduz o tamanho dos seus arquivos e diminui o tempo de carregamento, levando a um aplicativo mais rápido.


Parte 8: Use Redis ou Memcached para cache

Etapa 1: instalar o Redis

Para instalar o Redis:

sudo apt install redis-server

Etapa 2: configurar o Laravel para usar o Redis

No Laravel, abra o arquivo .env e configure o Redis como o driver de cache:

CACHE_DRIVER=redis

Etapa 3: cache de consultas de banco de dados

Use o cache de consulta para acelerar consultas repetidas ao banco de dados:

$users = Cache::remember('users', 60, function() {
    return DB::table('users')->get();
});

Por que?

Ao armazenar em cache as consultas do banco de dados, você reduz a carga do banco de dados e melhora drasticamente os tempos de resposta para dados acessados ​​com frequência.


Parte 9: Otimize Autoloaders

Etapa 1: use a otimização do Autoloader do Composer

Otimize os autoloaders do Composer para produção:

composer install --optimize-autoloader --no-dev

Etapa 2: limpar provedores de serviços não utilizados

No Laravel, desative quaisquer provedores de serviços não utilizados em config/app.php para reduzir o uso de memória e acelerar o tempo de inicialização do aplicativo.

Por que?

A otimização do carregamento automático compila mapas de classes, tornando o carregamento das classes mais rápido. Desabilitar serviços não utilizados ajuda o aplicativo a usar menos recursos.


Parte 10: Monitoramento e Criação de Perfil

Etapa 1: use o telescópio Laravel (ou outras ferramentas de criação de perfil)

Instale o telescópio Laravel para criar o perfil de sua aplicação:

composer require laravel/telescope
php artisan telescope:install
php artisan migrate
php artisan serve

Etapa 2: use New Relic ou Blackfire para criação de perfil avançado

Você pode integrar ferramentas de terceiros como New Relic ou Blackfire para analisar gargalos de aplicativos, desempenho de banco de dados e muito mais.

Por que?

Ferramentas de monitoramento e criação de perfil ajudam a identificar consultas lentas, vazamentos de memória e gargalos em seu aplicativo PHP, permitindo que você corrija problemas de desempenho de forma proativa.


Conclusão:

Seguindo essas etapas, você pode melhorar significativamente o desempenho do seu aplicativo PHP. Desde a atualização do PHP e habilitação do cache Opcode até a otimização de consultas de banco de dados e configuração do PHP-FPM, cada etapa contribui para um aplicativo mais responsivo e escalável.

Declaração de lançamento Este artigo está reproduzido em: https://dev.to/mdarifulhaque/boosting-php-efficiency-proven-techniques-for-performance-optimization-4plh?1 Se houver alguma infração, entre em contato com [email protected] para excluir isto
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3