PHP 8: Ajuste de Desempenho com OpCache e JIT

Backend2026-09-24TryQuickToolBox

Sua aplicação PHP 8 parece lenta sob carga. Você otimizou consultas, adicionou cache, mas os tempos de resposta ainda estão altos. O culpado pode ser o overhead de execução do próprio PHP. Dois recursos poderosos—OpCache e JIT—podem acelerar drasticamente seu código, mas apenas se configurados corretamente. Este guia explica como eles funcionam e como ajustá-los para cargas de trabalho do mundo real.

O que é OpCache e por que ele importa

PHP é uma linguagem interpretada: cada requisição normalmente analisa e compila seus arquivos fonte em bytecode antes de executar. O OpCache armazena esse bytecode compilado em memória compartilhada, então requisições subsequentes pulam a análise e a compilação. O resultado? Menor uso de CPU e tempos de resposta mais rápidos.

O OpCache está habilitado por padrão em muitas configurações de produção, mas as configurações padrão são conservadoras. Ajustá-lo pode render melhorias de throughput de 2 a 3 vezes para aplicações limitadas por CPU.

Diretivas principais de configuração do OpCache

Configurações recomendadas do OpCache para produção

; php.ini
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0
opcache.revalidate_freq=0
opcache.interned_strings_buffer=32
opcache.preload=/path/to/preload.php
opcache.preload_user=www-data

Após alterar as configurações, reinicie o PHP-FPM. Monitore com opcache_get_status() para verificar a taxa de acertos e o uso de memória.

Entendendo o JIT no PHP 8

A compilação JIT (Just-In-Time) leva o OpCache um passo adiante: ela compila o bytecode em código de máquina nativo em tempo de execução. Isso pode acelerar significativamente tarefas intensivas de CPU, como cálculos matemáticos, mas faz pouco por requisições web típicas dominadas por I/O (banco de dados, sistema de arquivos, rede).

O JIT faz parte do OpCache, então você deve habilitar o OpCache primeiro. No PHP 8, o JIT é configurado via opcache.jit e opcache.jit_buffer_size.

Diretivas de configuração do JIT

Configurações recomendadas do JIT

opcache.jit=tracing
opcache.jit_buffer_size=128M

Nota: o JIT só funciona com o OpCache habilitado. Em CLI, você pode precisar definir opcache.enable_cli=1 para testar o JIT.

OpCache vs JIT: quando usar cada um

RecursoOpCacheJIT
Benefício principalArmazena bytecode compilado em cacheCompila bytecode em código nativo
Melhor paraTodas as aplicações PHPScripts intensivos de CPU e de longa duração
Impacto em aplicações limitadas por I/OAlto (reduz análise/compilação)Baixo ou nenhum
Overhead de memóriaModeradoBuffer adicional
ComplexidadeBaixaMédia

Guia de ajuste passo a passo

  1. Habilite o OpCache com as configurações recomendadas acima.
  2. Monitore o OpCache usando opcache_get_status() ou ferramentas como OpCache GUI. Mire uma taxa de acertos acima de 99%.
  3. Ajuste a memória se opcache.memory_usage estiver próximo do limite.
  4. Considere o preload para frameworks grandes (Laravel, Symfony). Crie um script de preload que inclua classes usadas com frequência.
  5. Habilite o JIT apenas se sua aplicação for limitada por CPU. Teste com e sem JIT para medir o impacto.
  6. Faça benchmark usando ferramentas como ab, wrk ou siege. Compare requisições por segundo e latência.
  7. Implante mudanças gradualmente e monitore logs de erro para problemas.

Armadilhas comuns e boas práticas

FAQ

O JIT melhora o desempenho de todas as aplicações PHP?

Não. O JIT beneficia tarefas intensivas de CPU, como cálculos complexos ou processamento de dados. Para aplicações web limitadas por I/O (consultas a banco de dados, chamadas de API), os ganhos são mínimos. O OpCache sozinho frequentemente fornece a maior aceleração.

Como sei se o OpCache está funcionando?

Verifique phpinfo() para o status do OpCache, ou chame opcache_get_status() em um script. Procure por opcache_enabled => true e uma contagem alta de hits em relação a misses.

Posso usar JIT com PHP 7?

Não. O JIT foi introduzido no PHP 8.0. O PHP 7 suporta apenas OpCache. Se você está no PHP 7, foque no ajuste do OpCache e considere atualizar para o PHP 8 para JIT e outras melhorias de desempenho.

Pronto para analisar o desempenho do seu servidor? Confira nosso Analisador de Logs do Nginx para obter insights dos seus logs de acesso e identificar gargalos.