<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/apcu.setup.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'apcu.configuration.php',
    1 => 'Configura&ccedil;&otilde;es em Execu&ccedil;&atilde;o',
    2 => 'Configura&ccedil;&otilde;es em Execu&ccedil;&atilde;o',
  ),
  'up' => 
  array (
    0 => 'apcu.setup.php',
    1 => 'Instala&ccedil;&atilde;o/Configura&ccedil;&atilde;o',
  ),
  'prev' => 
  array (
    0 => 'apcu.installation.php',
    1 => 'Instala&ccedil;&atilde;o',
  ),
  'next' => 
  array (
    0 => 'apcu.constants.php',
    1 => 'Constantes predefinidas',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    'path' => 'reference/apcu/ini.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="apcu.configuration" class="section">
 <h2 class="title">Configurações em Execução</h2>
 <p class="simpara">
O comportamento destas funções é afetado pelas configurações do <var class="filename">php.ini</var>.
</p>
 <p class="simpara">
  Embora as configurações padrão do APCu são adequadas para muitas instalações, usuários
  devem considerar ajustes para os parâmetros abaixo.
 </p>
 <p class="simpara">
  Existe uma decisão a ser tomada ao configurar o APCu:
  quanta memória será alocada ao APCu.
  A diretiva ini que controla isso é <code class="literal">apc.shm_size</code>,
  leia cuidadosamente as seções sobre este assunto abaixo.
 </p>
 <p class="simpara">
  Uma vez que o servidor está em execução, o script <code class="literal">apc.php</code> que é
  incluído com a extensão deve ser copiado para algum lugar dentro do diretório raiz dos documentos e
  visualizado com um navegador pois ele fornece uma análise detalhada do funcionamento
  interno do APCu. Se a GD estiver habilitada no PHP, ele irá mostrar inclusive alguns
  gráficos interessantes.</p>
  <p class="simpara">
  Se o APCu estiver funcionando, o número <code class="literal">Cache full count
  </code> (na esquerda) mostrará o número de vezes que o cache
  atingiu a capacidade máxima e teve que despejar entradas para liberar memória.
  Durante o despejo, se <code class="literal">apc.ttl</code> foi especificado, o APCu inicialmente
  tentará remover entradas expiradas, isto é, entradas cujo TTL tenha expirado ou
  entradas que não tenham o TTL definido e não tenham sido acessadas nos últimos
  <code class="literal">apc.ttl</code> segundos. Se <code class="literal">apc.ttl</code> não foi definido,
  ou se a remoção de entradas expiradas não liberou espaço suficiente, o APCu limpará
  o cache inteiro.
  </p>
  <p class="simpara">
  O número de despejos deve ser mínimo em um cache bem configurado. Se o
  cache está constantemente atingindo o limite, e por isso sendo liberado à força,
  a agitação resultante terá efeitos depreciativos no desempenho do script. A maneira mais fácil
  de minimizar este número é alocar mais memória para o APCu.
 </p>
 <p class="simpara">
  Quando o APCu é compilado com suporte a mmap (Mapeamento de Memória), ele usará somente um
  segmento de memória, ao contrário de quando for compilado com suporte a SHM (Memória Compartilhada SysV)
  que usa múltiplos segmentos. MMAP não tem um limite máximo como o SHM
  em <code class="literal">/proc/sys/kernel/shmmax</code>. Em geral o suporte MMAP é
  recomendado porque ele irá recuparar a memória mais rapidamente quando o servidor web for
  reiniciado e, sumazirando, reduzirá o impacto na alocação de memória na inicialização.
 </p>
 <p class="para">
  <table class="doctable table">
   <caption><strong>Opções de configuração APCu</strong></caption>
   
    <thead>
     <tr>
      <th>Nome</th>
      <th>Padrão</th>
      <th>Modificável</th>
      <th>Registro de Alterações</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.enabled" class="link">apc.enabled</a></td>
      <td>1</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.shm-segments" class="link">apc.shm_segments</a></td>
      <td>1</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.shm-size" class="link">apc.shm_size</a></td>
      <td>&quot;32M&quot;</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.entries-hint" class="link">apc.entries_hint</a></td>
      <td>512 * apc.shm_size</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td>Antes do APcu 5.1.25, o padrão era 4096</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.ttl" class="link">apc.ttl</a></td>
      <td>0</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.gc-ttl" class="link">apc.gc_ttl</a></td>
      <td>3600</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.mmap-file-mask" class="link">apc.mmap_file_mask</a></td>
      <td>NULL</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.slam-defense" class="link">apc.slam_defense</a></td>
      <td>0</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.enable-cli" class="link">apc.enable_cli</a></td>
      <td>0</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.use-request-time" class="link">apc.use_request_time</a></td>
      <td>0</td>
      <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
      <td>Antes do APCu 5.1.19, o padrão era <code class="literal">1</code>.</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.serializer" class="link">apc.serializer</a></td>
      <td>&quot;php&quot;</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td>Antes do APCu 5.1.15, o padrão era <code class="literal">&quot;default&quot;</code>.</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.coredump-unmap" class="link">apc.coredump_unmap</a></td>
      <td>0</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="apcu.configuration.php#ini.apcu.preload-path" class="link">apc.preload_path</a></td>
      <td>NULL</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

    </tbody>
   
  </table>

  Para mais detalhes e definições dos modos
INI_*, consulte os <a href="configuration.changes.modes.php" class="xref">Onde uma configura&ccedil;&atilde;o deve ser definida</a>.
 </p>

 <p class="para">Aqui está uma breve explicação das
diretivas de configuração.</p>

 <dl>
  
   <dt id="ini.apcu.enabled">
    <code class="parameter">apc.enabled</code>
    <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">apc.enabled</code> pode ser definido para 0 para desabilitar o APC. Isto é
     útil principalmente quando o APC é compilado estaticamente
     no PHP, já que não há outra maneira de desabilitá-lo
     (quando compilado como um DSO, a linha <code class="literal">extension</code>
     no <code class="literal">php.ini</code> pode ser simplesmente comentada).
    </span>
   </dd>
  
  
   <dt id="ini.apcu.shm-segments">
    <code class="parameter">apc.shm_segments</code>
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
   </dt>
   <dd>
    <span class="simpara">
     O número de segmentos de memória compartilhada a alocar
     para o cache do compilador. Se o APC estiver com pouca
     memória compartilhada mas <code class="literal">apc.shm_size</code>
     estiver definido com um valor tão alto quanto o sistema permite, aumentar
     este valor pode evitar que o APC tenha a memória exaurida.
    </span>
   </dd>
  
  
   <dt id="ini.apcu.shm-size">
    <code class="parameter">apc.shm_size</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
     O tamanho de cada segmento de memória compartilhada, informado como uma notação reduzida
     como descrito <a href="faq.using.php#faq.using.shorthandbytes" class="link">neste FAQ</a>.
     Por padrão, alguns sistemas (incluindo a maior parte das variantes
     BSD) têm limites muito baixos no tamanho de um
     segmento de memória compartilhada.
    </span>
   </dd>
  
  
   <dt id="ini.apcu.entries-hint">
    <code class="parameter">apc.entries_hint</code>
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
   </dt>
   <dd>
    <span class="simpara">
     Uma &quot;pista&quot; sobre o número de variáveis distintas que podem ser armazenadas.
     Defina para zero ou omita se não tiver essa informação.
    </span>
   </dd>
  
  
   <dt id="ini.apcu.ttl">
    <code class="parameter">apc.ttl</code>
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
   </dt>
   <dd>
    <span class="simpara">
     Considera que entradas de cache sem um TTL explícito estão
     expiradas se não foram acessadas nos segundos definidos por esta
     diretiva. Efetivamente, isto permite que tais entradas sejam
     removida oportunamente durante uma inserção de cache ou antes de
     uma eliminação completa. Observe que devido à remoção ser
     oportunap, as entradas ainda podem ser lidas mesmo se
     forem mais antigas que <code class="literal">apc.ttl</code> segundos.
     Esta configuração não tem efeito em entradas de cache que tenham
     um TTL explícito especificado.
    </span>
   </dd>
  
  
   <dt id="ini.apcu.gc-ttl">
    <code class="parameter">apc.gc_ttl</code>
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
   </dt>
   <dd>
    <span class="simpara">
     O número de segundos que uma entrada de cache pode
     permanecer na lista de coleta de lixo após ser removida ou inicializada.
     Uma entrada é elegível a remoção se sua contagem de referência for zero,
     ou se exceder este limite de tempo.
     Se definido para <code class="literal">0</code>, a limpeza baseada em tempo é desativada,
     e as entradas só serão removidas quando suas contagens de referência caírem para zero.
    </span>
   </dd>
  
  
   <dt id="ini.apcu.mmap-file-mask">
    <code class="parameter">apc.mmap_file_mask</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
     Se compilado com suporte MMAP usando <code class="literal">--enable-mmap</code>
     esta é a máscara de arquivo em estilo mktemp a ser passada ao
     módulo mmap para determinar se a região de memória mapeada pelo MMAP
     será apoiada por arquivo ou apoiada por memória
     comparilhada. Para MMAP diretamente apoiada por arquivo, defina para
     algo como <code class="literal">/tmp/apc.XXXXXX</code>
     (exatamente 6 <code class="literal">X</code>).
     Oara usar shm_open/mmap em estilo POSIX, insira um <code class="literal">.shm</code>
     em algum lugar da máscara (por exemplo, <code class="literal">/apc.shm.XXXXXX</code>).
     Pode-se também defini-la para <code class="literal">/dev/zero</code> para usar a
     interface <code class="literal">/dev/zero</code> do kernel para memória mapeada
     anonimamente. Deixar este valor indefinido força um mapeamento anônimo.
    </span>
   </dd>
  
  
   <dt id="ini.apcu.slam-defense">
    <code class="parameter">apc.slam_defense</code>
    <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
   </dt>
   <dd>
    <span class="simpara">
     Em um servidor muito ocupado, toda vez que ele for reiniciado
     ou quando arquivos forem modificados, pode-se criar uma condição de corrida onde muitos
     processos tentam inserir o mesmo arquivo no cache ao mesmo tempo.
     Definir <code class="literal">apc.slam_defense</code> para <code class="literal">1</code>
     pode ajudar a evitar que múltiplos processos tentem fazer cache do
     mesmo arquivo ao mesmo tempo, através da introdução de um mecanismo
     probabilístico. Se a mesma chave sofrer tentativa de cache
     dentro de um intervalo curto de tempo por diferentes processos, ele
     pula a tarefa de cache do processo atual para mitigar potenciais
     conflitos de cache.
    </span>
   </dd>
  
  
   <dt id="ini.apcu.enable-cli">
    <code class="parameter">apc.enable_cli</code>
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
   </dt>
   <dd>
    <span class="simpara">
     Esta diretiva serve principalmente para teste e depuração. Habilita APC
     para a versão CLI do PHP. Em circunstâncias normais, não é
     ideal criar, popular e destruir o cache APC a cada
     requisição CLI, mas para vários cenários de teste é útil para
     ser capaz de habilitar o APC para a versão CLI do PHP facilmente.
    </span>
   </dd>
  
  
   <dt id="ini.apcu.serializer">
    <code class="parameter">apc.serializer</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
     Usada para configurar o APC para usar um serializador de terceiros.
    </span>
   </dd>
  
  
   <dt id="ini.apcu.coredump-unmap">
    <code class="parameter">apc.coredump_unmap</code>
    <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
   </dt>
   <dd>
    <span class="simpara">
     Habilita o gerenciamento APC de sinais, tal como SIGSEGV, que grava
     arquivos de núcleo quando sinalizado. Quandos esses sinais são recebidos,
     o APC tentará desmapear o segmento de memória compartilhada para
     excluí-lo do arquivo de núcleo. Esta configuração pode melhorar
     a estabilidade do sistema quando sinais fatais são recebidos e um grande
     segmento de memória compartilhada APC estiver configurado.
    </span>
    <div class="warning"><strong class="warning">Aviso</strong>
     <p class="simpara">
      Este recurso é potencialmente perigoso. Desmapear o segmento de memória
      compartilhada em um gerenciador de sinal fatal pode causar comportamento
      indefinido de um erro fatal ocorrer.
     </p>
    </div>
    <blockquote class="note"><p><strong class="note">Nota</strong>: 
     <span class="simpara">
      Embora alguns kernels possam fornecer um recurso para ignorar vários
      tipos de memória compartilhada ao gerar um arquivo de despejo de núcleo, estas
      implementações podem também ignorar segmentos de memória compartilhada importantes
      tal como o Scoreboard do Apache.
     </span>
    </p></blockquote>
   </dd>
  
  
   <dt id="ini.apcu.preload-path">
    <code class="parameter">apc.preload_path</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
     Opcionalmente, define um caminho para o diretório onde o APC irá carregar
     dados de cache na inicialização.
    </span>
   </dd>
  

  
   <dt id="ini.apcu.use-request-time">
    <code class="parameter">apc.use_request_time</code>
    <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
   </dt>
   <dd>
    <span class="simpara">
     Usa o horário de início da requisição <abbr title="Server Application Programming Interface">SAPI</abbr> para o
     <abbr>TTL</abbr>.
    </span>
   </dd>
  
 </dl>
</div><?php manual_footer($setup); ?>