A resposta curta é que as opções geralmente podem ser deixadas nos padrões, o que você pode considerar como as respostas "adequadas".
A primeira opção (--enable-apc-filehits) permite reunir informações para a opção "filehits" de apc_cache_info
. Basicamente, você pode usá-lo para descobrir quais arquivos são extraídos do cache para cada solicitação, se estiver depurando problemas relacionados ao cache. Da documentação apc_cache_info
:
If cache_type is "filehits", information about which files have been served from the bytecode cache for the current request will be returned. This feature must be enabled at compile time using --enable-filehits.
Quando se trata da segunda opção (--enable-apc-spinlocks), os spinlocks são um ciclo-processador forma ineficiente de garantir que apenas um processo acesse um recurso a qualquer momento. A APC usa bloqueios ao lidar com memória compartilhada. O APC coloca o cache na memória compartilhada para que todos os processos do PHP possam, bem, compartilhar o cache, e os bloqueios garantem que os processos não tropeçam uns nos outros ao fazê-lo.
A partir do APC 3.1.9, o instalador PECL pergunta sobre a ativação de três opções adicionais: proteção de memória, bloqueios de leitura / gravação pthread e exclusões de pthread, que correspondem a --enable-apc-memprotect, --enable-apc-pthreadrwlocks e --enable-apc-pthreadmutex. Os dois primeiros são rotulados experimental e desativado por padrão; o último está ativado.
A proteção de memória trata algumas áreas da memória compartilhada como somente leitura em certas circunstâncias.
Os bloqueios e mutexes de leitura / gravação Pthread são mecanismos de bloqueio alternativos. Os mecanismos de bloqueio que a APC pode usar atualmente são:
- bloqueio de arquivos (fcntl)
- semáforos
- bloqueios pthread
- mutexes pthread
- Bloqueios de leitor / gravador refinados (somente Windows)
- spinlocks
Prenda-se ao mecanismo de bloqueio padrão, a menos que a APC não compile. Brian Shire, do Facebook, testou o desempenho do mecanismo de bloqueio e apresentou os resultados em 2007; você pode usar seus resultados para guiá-lo ao tentar mecanismos de bloqueio quando os padrões falharem.