Irá stat () causar um acesso real ao disco rígido ou as informações serão armazenadas em cache?

2

Ao otimizar meus caches opcode PHP, eu tentei alternar a configuração stat (= as verificações do cache opcode, se um arquivo foi modificado via stat() , antes de usar os resultados em cache). Mas eu não vi nenhuma diferença nos meus benchmarks de aplicativos. O sistema de arquivos em uso é ext4 , montado com a opção noatime .

É correto assumir que os metadados usados por stat () são mantidos na memória ou há sempre algum tipo de interação de disco rígido quando stat() é usado?

    
por Martin 26.11.2013 / 00:01

1 resposta

3

Os dados retornados por stat (os metadados do arquivo) são armazenados em cache como qualquer outro dado do sistema de arquivos. Se você o acessou recentemente o suficiente para que ele ainda esteja no cache, os acessos subsequentes serão mais rápidos, até que algo mais o substitua na RAM.

Acessar o conteúdo de um arquivo não carrega seus metadados na memória (ou vice-versa).

A verificação stat custa um pouco mais (muito pouco se os metadados estiverem no cache, mas ainda um pouco). Se isso compensa o potencial de processamento extra, depende de quanto processamento você estaria fazendo e da taxa de saturação de I / O / CPU.

    
por 26.11.2013 / 02:14