Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de configuração do OPcache
NomePadrãoModificávelRegistro de Alterações
opcache.enable"1"INI_ALL 
opcache.enable_cli"0"INI_SYSTEMEntre PHP 7.1.2 e 7.1.6 inclusive, o padrão era "1"
opcache.memory_consumption"128"INI_SYSTEM 
opcache.interned_strings_buffer"8"INI_SYSTEM 
opcache.max_accelerated_files"10000"INI_SYSTEM 
opcache.max_wasted_percentage"5"INI_SYSTEM 
opcache.use_cwd"1"INI_SYSTEM 
opcache.validate_timestamps"1"INI_ALL 
opcache.revalidate_freq"2"INI_ALL 
opcache.revalidate_path"0"INI_ALL 
opcache.save_comments"1"INI_SYSTEM 
opcache.fast_shutdown"0"INI_SYSTEMRemovido no PHP 7.2.0
opcache.enable_file_override"0"INI_SYSTEM 
opcache.optimization_level"0x7FFEBFFF"INI_SYSTEMAlterado de 0x7FFFBFFF no PHP 7.3.0
opcache.inherited_hack"1"INI_SYSTEMRemovido no PHP 7.3.0
opcache.dups_fix"0"INI_ALL 
opcache.blacklist_filename""INI_SYSTEM 
opcache.max_file_size"0"INI_SYSTEM 
opcache.consistency_checks"0"INI_ALLDesativado a partir do 8.1.18 e 8.2.5. Removido a partir do PHP 8.3.0
opcache.force_restart_timeout"180"INI_SYSTEM 
opcache.error_log""INI_SYSTEM 
opcache.log_verbosity_level"1"INI_SYSTEM 
opcache.record_warnings"0"INI_SYSTEMDisponível a partir do PHP 8.0.0
opcache.preferred_memory_model""INI_SYSTEM 
opcache.protect_memory"0"INI_SYSTEM 
opcache.mmap_basenullINI_SYSTEM 
opcache.restrict_api""INI_SYSTEM 
opcache.file_update_protection"2"INI_ALL 
opcache.huge_code_pages"0"INI_SYSTEM 
opcache.lockfile_path"/tmp"INI_SYSTEM 
opcache.opt_debug_level"0"INI_SYSTEMDisponível a partir do PHP 7.1.0
opcache.file_cacheNULLINI_SYSTEM 
opcache.file_cache_only"0"INI_SYSTEM 
opcache.file_cache_consistency_checks"1"INI_SYSTEM 
opcache.file_cache_fallback"1"INI_SYSTEMSomente Windows.
opcache.validate_permission"0"INI_SYSTEMDisponível a partir do PHP 7.0.14
opcache.validate_root"0"INI_SYSTEMDisponível a partir do PHP 7.0.14
opcache.preload""INI_SYSTEMDisponível a partir do PHP 7.4.0
opcache.preload_user""INI_SYSTEMDisponível a partir do PHP 7.4.0
opcache.cache_id""INI_SYSTEMSomente Windows. Disponível a partir do PHP 7.4.0
opcache.jit"tracing"INI_ALLDisponível a partir do PHP 8.0.0
opcache.jit_buffer_size"0"INI_SYSTEMDisponível a partir do PHP 8.0.0
opcache.jit_debug"0"INI_ALLDisponível a partir do PHP 8.0.0
opcache.jit_bisect_limit"0"INI_ALLDisponível a partir do PHP 8.0.0
opcache.jit_prof_threshold"0.005"INI_ALLDisponível a partir do PHP 8.0.0
opcache.jit_max_root_traces"1024"INI_SYSTEMDisponível a partir do PHP 8.0.0
opcache.jit_max_side_traces"128"INI_SYSTEMDisponível a partir do PHP 8.0.0
opcache.jit_max_exit_counters"8192"INI_SYSTEMDisponível a partir do PHP 8.0.0
opcache.jit_hot_loop"64"INI_SYSTEMDisponível a partir do PHP 8.0.0
opcache.jit_hot_func"127"INI_SYSTEMDisponível a partir do PHP 8.0.0
opcache.jit_hot_return"8"INI_SYSTEMDisponível a partir do PHP 8.0.0
opcache.jit_hot_side_exit"8"INI_SYSTEMDisponível a partir do PHP 8.0.0
opcache.jit_blacklist_root_trace"16"INI_ALLDisponível a partir do PHP 8.0.0
opcache.jit_blacklist_side_trace"8"INI_ALLDisponível a partir do PHP 8.0.0
opcache.jit_max_loop_unrolls"8"INI_ALLDisponível a partir do PHP 8.0.0
opcache.jit_max_recursive_calls"2"INI_ALLDisponível a partir do PHP 8.0.0
opcache.jit_max_recursive_returns"2"INI_ALLDisponível a partir do PHP 8.0.0
opcache.jit_max_polymorphic_calls"2"INI_ALLDisponível a partir do PHP 8.0.0
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

opcache.enablebool

Habilita o cache opcode. Quando desabilitado, o código não é otimizado ou armazenado em cache. A configuração opcache.enable não pode ser habilitada em tempo de execução através de ini_set(), ela só pode ser desabilitada. Tentar ativá-lo em um script gerará um aviso.

opcache.enable_clibool

Ativa o cache opcode para a versão CLI do PHP.

opcache.memory_consumptionint

O tamanho do armazenamento de memória compartilhada usado pelo OPcache, em megabytes. O valor mínimo permitido é "8", que é aplicado se um valor menor for definido.

opcache.interned_strings_bufferint

A quantidade de memória usada para armazenar strings internas, em megabytes.

opcache.max_accelerated_filesint

O número máximo de chaves (e, portanto, scripts) na tabela de hash do OPcache. O valor real usado será o primeiro número no conjunto de números primos { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987, 262237, 524521, 1048793 } que é maior ou igual ao valor configurado. O valor mínimo é 200. O valor máximo é 1.000.000. Valores fora desta faixa são fixados na faixa permitida.

opcache.max_wasted_percentageint

A porcentagem máxima de memória desperdiçada que é permitida antes de uma reinicialização ser planejada, se houver memória livre insuficiente. O valor máximo permitido é "50", que é aplicado se um valor maior for definido.

opcache.use_cwdbool

Se ativado, o OPcache anexa o diretório de trabalho atual à chave de script, eliminando assim possíveis colisões entre arquivos com o mesmo nome de base. Desativar esta diretiva melhora o desempenho, mas pode interromper os aplicativos existentes.

opcache.validate_timestampsbool

Se ativado, o OPcache verificará os scripts atualizados a cada opcache.revalidate_freq segundos. Quando esta diretiva é desativada, você deve redefinir o OPcache manualmente via opcache_reset(), opcache_invalidate() ou reiniciando o servidor Web para que as alterações no sistema de arquivos entrem em vigor.

Nota: O OPcache ainda pode validar o carimbo de data e hora de um arquivo durante o tempo de compilação se as opções opcache.file_update_protection ou opcache.max_file_size estiverem definidas com valores diferentes de zero.

opcache.revalidate_freqint

Com que frequência verificar carimbos de data/hora do script para atualizações, em segundos. 0 resultará na verificação de atualizações do OPcache em cada solicitação.

Esta diretiva de configuração será ignorada se opcache.validate_timestamps estiver desativado.

opcache.revalidate_pathbool

Se desativado, os arquivos em cache existentes usando o mesmo include_path serão reutilizados. Assim, se um arquivo com o mesmo nome estiver em outro lugar no include_path, ele não será encontrado.

opcache.save_commentsbool

Se desativado, todos os comentários da documentação serão descartados do cache do opcode para reduzir o tamanho do código otimizado. Desativar esta diretiva de configuração pode interromper aplicativos e frameworks que dependem da análise de comentários para anotações, incluindo Doctrine, Zend Framework 2 e PHPUnit.

opcache.fast_shutdownbool

Se ativado, uma sequência de desligamento rápido é usada que não libera cada bloco alocado, mas depende do gerenciador de memória do Zend Engine para desalocar todo o conjunto de variáveis de solicitação em massa.

Esta diretiva foi removida no PHP 7.2.0. Uma variante da sequência de desligamento rápido foi integrada ao PHP e será usada automaticamente, se possível.

opcache.enable_file_overridebool

Quando ativado, o cache opcode será verificado para saber se um arquivo já foi armazenado em cache quando file_exists(), is_file() e is_readable() são chamados. Isso pode aumentar o desempenho em aplicativos que verificam a existência e legibilidade de scripts PHP, mas corre o risco de retornar dados desatualizados se opcache.validate_timestamps estiver desabilitado.

opcache.optimization_levelint

Uma máscara de bits que controla quais passos de otimização são executados. O padrão é aplicar todas as otimizações seguras. Alterar o padrão é mais útil para depurar/desenvolver o otimizador (consulte também opcache.opt_debug_level).

opcache.inherited_hackbool

Esta diretiva de configuração é ignorada.

opcache.dups_fixbool

Este hack só deve ser ativado para contornar os erros "Cannot redeclare class".

opcache.blacklist_filenamestring

A localização do arquivo de blacklist do OPcache. Um arquivo de blacklist é um arquivo de texto contendo os nomes dos arquivos que não devem ser acelerados, um por linha. Curingas(*) são permitidos e prefixos também podem ser fornecidos. As linhas iniciadas com ponto e vírgula são ignoradas como comentários.

Um arquivo de blacklist simples pode ter a seguinte aparência:

 ; Corresponde a um arquivo específico. /var/www/broken.php ; Um prefixo que corresponde a todos os arquivos que começam com x. /var/www/x ; Uma correspondência curinga. /var/www/*-broken.php 
opcache.max_file_sizeint

O tamanho máximo do arquivo que será armazenado em cache, em bytes. Se for 0, todos os arquivos serão armazenados em cache.

opcache.consistency_checksint

Se diferente de zero, o OPcache verificará a soma de verificação do cache a cada N solicitações, onde N é o valor desta diretiva de configuração. Isso só deve ser ativado durante a depuração, pois prejudicará o desempenho.

Nota:

Desativado a partir do 8.1.18 e 8.2.5. Removido a partir do PHP 8.3.0.

opcache.force_restart_timeoutint

O tempo de espera para iniciar uma reinicialização agendada se o cache não estiver ativo, em segundos. Se o tempo limite for atingido, o OPcache assumirá que algo está errado e eliminará os processos que mantêm bloqueios no cache para permitir uma reinicialização.

Se opcache.log_verbosity_level for definido como 2 ou superior, um aviso será registrado no log de erros quando isso ocorrer.

Esta diretiva não é suportada no Windows.

opcache.error_logstring

O log de erros para erros do OPcache. Uma string vazia é tratada da mesma forma que stderr e resultará no envio de logs para erro padrão (que será o log de erro do servidor Web na maioria dos casos).

opcache.log_verbosity_levelint

O nível de verbosidade do log. Por padrão, apenas erros fatais (nível 0) e erros (nível 1) são registrados. Outros níveis disponíveis são avisos (nível 2), mensagens informativas (nível 3) e mensagens de depuração (nível 4).

opcache.record_warningsbool

Se ativado, o OPcache registrará avisos em tempo de compilação e os reproduzirá na próxima inclusão, mesmo que seja servido do cache.

opcache.preferred_memory_modelstring

O modelo de memória preferencial para uso do OPcache. Se deixado em branco, o OPcache escolherá o modelo mais adequado, que é o comportamento correto em praticamente todos os casos.

Os valores possíveis incluem mmap, shm, posix and win32.

opcache.protect_memorybool

Protege a memória compartilhada contra gravações inesperadas durante a execução de scripts. Isso é útil apenas para depuração interna.

opcache.mmap_basestring

A base usada para segmentos de memória compartilhada no Windows. Todos os processos PHP precisam mapear a memória compartilhada no mesmo espaço de endereço. O uso desta diretiva permite que os erros "Unable to reattach to base address" sejam corrigidos.

opcache.restrict_apistring

Permite chamar funções da API do OPcache apenas de scripts PHP cujo caminho é iniciado a partir da string especificada. O padrão "" significa nenhuma restrição.

opcache.file_update_protectionstring

Impede o armazenamento em cache de arquivos que tenham menos de um determinado número de segundos desde a última modificação. Isso protege contra o armazenamento em cache de arquivos que tenham sido atualizados de forma incompleta. Caso todas as atualizações forem atômicas, o desempenho pode ser aumentado definindo isso como 0. Isso permitirá que os arquivos sejam armazenados em cache imediatamente.

opcache.huge_code_pagesbool

Ativa ou desativa a cópia do código PHP (segmento de texto) em PÁGINAS ENORMES. Isso deve melhorar o desempenho, mas requer configuração de sistema operacional apropriada. Disponível no Linux a partir do PHP 7.0.0 e no FreeBSD a partir do PHP 7.4.0.

opcache.lockfile_pathstring

Caminho absoluto usado para armazenar arquivos de bloqueio compartilhados (somente para * nix)

opcache.opt_debug_levelstring

Produz opcode dumps para depurar diferentes estágios de otimizações. 0x10000 produzirá opcodes conforme o compilador os produziu antes que qualquer otimização ocorra, enquanto 0x20000 produzirá códigos otimizados.

opcache.file_cachestring

Ativa e define o diretório de cache de segundo nível. Ele deve melhorar o desempenho quando a memória SHM estiver cheia, na reinicialização do servidor ou na reinicialização do SHM. O padrão "" desativa o cache baseado em arquivo.

opcache.file_cache_onlybool

Ativa ou desativa o armazenamento em cache opcode na memória compartilhada.

Nota:

Antes do PHP 8.1.0, desabilitar esta diretiva com um cache de arquivo já preenchido era necessário para limpar manualmente o cache de arquivo.

opcache.file_cache_consistency_checksbool

Ativa ou desativa a validação da soma de verificação quando o script é carregado do cache do arquivo.

opcache.file_cache_fallbackbool

Implica opcache.file_cache_only=1 para um determinado processo que falhou ao se reconectar à memória compartilhada (somente para Windows). Cache de arquivo explicitamente habilitado é necessário.

Cuidado

Desativar esta opção de configuração pode impedir que os processos sejam iniciados e, portanto, é desencorajado.

opcache.validate_permissionbool

Valida as permissões do arquivo em cache no usuário atual.

opcache.validate_rootbool

Evita colisões de nomes em ambientes chroot'ed. Isso deve ser ativado em todos os ambientes chroot'ed para impedir o acesso a arquivos fora do chroot.

opcache.preloadstring

Especifica um script PHP que será compilado e executado na inicialização do servidor e que pode pré-carregar outros arquivos, seja por includeing ou usando a função opcache_compile_file(). Todas as entidades (por exemplo, funções e classes) definidas nesses arquivos estarão disponíveis para solicitações prontas para uso, até que o servidor seja desligado.

Nota:

O pré-carregamento não é suportado no Windows.

opcache.preload_userstring

Permite que o pré-carregamento seja executado como o usuário do sistema especificado. Isso é útil para servidores que inicializam como root antes de alternar para um usuário de sistema sem privilégios. O pré-carregamento como root não é permitido por padrão por motivos de segurança, a menos que esta diretiva seja explicitamente definida como root.

opcache.cache_idstring

No Windows, todos os processos executando o mesmo PHPSAPI na mesma conta de usuário com o mesmo ID de cache compartilham uma única instância do OPcache. O valor do cache ID pode ser escolhido livremente.

Dica

Para IIS, diferentes pools de aplicativos podem ter sua própria instância OPcache usando a variável de ambiente APP_POOL_ID como opcache.cache_id.

opcache.jitstring|int

Para uso típico, esta opção aceita um dos quatro valores de string:

  • disable: Completamente desativado, não pode ser ativado em tempo de execução.
  • off: Desativado, mas pode ser ativado em tempo de execução.
  • tracing/on:Use rastreamento JIT. Ativado por padrão e recomendado para a maioria dos usuários.
  • function: Use function JIT.

Para uso avançado, esta opção aceita um CRTO inteiro de 4 dígitos, onde os dígitos significam:

C (CPU-sinalizadores de otimização específicos)
  • 0: Desative a otimização específica da CPU.
  • 1: Habilite o uso do AVX, se a CPU for compatível.
R (alocação de registro)
  • 0: Não execute alocação de registro.
  • 1: Execute a alocação de registrador local de bloco.
  • 2: Execute a alocação global de registradores.
T (gatilho(trigger))
  • 0: Compile todas as funções no carregamento do script.
  • 1: Compile funções na primeira execução.
  • 2: Funções de perfil no primeiro pedido e compilação das funções mais quentes depois.
  • 3: Crie perfis em tempo real e compile funções importantes.
  • 4: Atualmente sem uso.
  • 5: Use tracing JIT. Crie perfis em tempo real e compile rastreamentos para segmentos de código dinâmico.
O (nível de otimização)
  • 0: Sem JIT.
  • 1: JIT mínimo (chamada de manipuladores de VM padrão).
  • 2: Manipuladores de VM embutidos.
  • 3: Use inferência de tipo.
  • 4: Usar gráfico de chamada.
  • 5: Otimize todo o script.
O modo "tracing" corresponde a CRTO = 1254, o modo "function" corresponde a CRTO = 1205.
opcache.jit_buffer_sizeint

A quantidade de memória compartilhada a ser reservada para o código JIT compilado. Um valor zero desativa o JIT.

Quando um int é usado, o valor é medido em bytes. A notação abreviada, como descrita nesta FAQ, também pode ser usada.
opcache.jit_debugint

Uma máscara de bits especificando qual saída de depuração JIT habilitar. Para possíveis valores, consulte » zend_jit.h (procure por definições de macro começando com ZEND_JIT_DEBUG).

opcache.jit_bisect_limitint

Opção de depuração que desativa a compilação JIT após a compilação de um determinado número de funções. Isso pode ser útil para dividir a origem de um erro de compilação JIT. Observação: esta opção só funciona quando o gatilho JIT é definido como 0 (compilar no carregamento do script) ou 1 (compilar na primeira execução), por exemplo, opcache.jit=1215. Veja mais na opção opcache.jit.

opcache.jit_prof_thresholdfloat

Ao usar o modo de trigger "profile on first request", esse limite determina se uma função é considerada ativa. O número de chamadas para a função dividido pelo número de chamadas para todas as funções deve estar acima do limite. Por exemplo, um limite de 0,005 significa que as funções que representam mais de 0,5% de todas as chamadas serão compiladas por JIT.

opcache.jit_max_root_tracesint

Número máximo de root traces. O root trace é um fluxo de execução que percorre primeiro um caminho através do código, que é uma unidade de compilação JIT. O JIT não compilará o novo código se atingir esse limite.

opcache.jit_max_side_tracesint

Número máximo de side traces que um root trace pode ter. O side trace é outro fluxo de execução que não segue o caminho do root trace compilado. Os sides traces pertencentes ao mesmo root trace não serão compilados se atingirem esse limite.

opcache.jit_max_exit_countersint

Número máximo de contadores de saída de side trace. Isso limita o número total de side traces que podem existir, em todos os root traces.

opcache.jit_hot_loopint

Depois de quantas iterações um loop é considerado ativo. O intervalo de valor válido é [0,255]; para qualquer configuração fora desse intervalo, por exemplo, -1 ou 256, o valor padrão será usado. Especialmente, um valor zero desabilitará o JIT para rastrear e compilar quaisquer loops.

opcache.jit_hot_funcint

Depois de quantas chamadas uma função é considerada "quente". O intervalo de valor válido é [0,255]; para qualquer configuração fora desse intervalo, por exemplo, -1 ou 256, o valor padrão será usado. Especialmente, um valor zero desabilitará o JIT para rastrear e compilar quaisquer funções.

opcache.jit_hot_returnint

Depois de quantos retornos, um retorno é considerado "quente". O intervalo de valor válido é [0,255]; para qualquer configuração fora desse intervalo, por exemplo, -1 ou 256, o valor padrão será usado. Especialmente, um valor zero desabilitará o JIT para rastrear e compilar quaisquer retornos.

opcache.jit_hot_side_exitint

Depois de quantas saídas uma saída lateral é considerada "quente". O intervalo de valor válido é [0,255]; para qualquer configuração fora desse intervalo, por exemplo, -1 ou 256, o valor padrão será usado. Especialmente, um valor zero desabilitará o JIT para rastrear e compilar quaisquer saídas secundárias.

opcache.jit_blacklist_root_traceint

Número máximo de vezes que a compilação de um root trace é tentada antes de ser incluída na blacklist.

opcache.jit_blacklist_side_traceint

Número máximo de vezes que a compilação de um side trace é tentada antes de ser incluída na blacklist.

opcache.jit_max_loop_unrollsint

Número máximo de tentativas de resolver um loop em um traço lateral, tentando alcançar o root trace e fechar o loop externo.

opcache.jit_max_recursive_callsint

Número máximo de loops de chamada recursiva.

opcache.jit_max_recursive_returnsint

Número máximo de loops de retorno recursivos.

opcache.jit_max_polymorphic_callsint

Número máximo de tentativas de chamadas polimórficas (dinâmicas ou de método) embutidas. As chamadas acima desse limite são tratadas como megamórficas e não são embutidas.

To Top