O que o cache do sistema de arquivos faz no Windows 7?

16

O artigo Diagnosticando por que o Git é tão lento tem esse interessante item nele:

Enable the filesystem cache

Windows' filesystem layer is inherently different from Linux' (for which Git's filesystem access is optimized). As a workaround, Git for Windows offers a filesystem cache which accelerates operations in many cases, after an initial "warm-up". You can activate the filesystem cache per-repository:

git config core.fscache true

Se eu ativar esta opção no Git, o que realmente muda? Como é o cache do sistema de arquivos no Windows 7 e o que está sendo armazenado em cache? O que o "aquecimento inicial" implica?

    
por Jonah Bishop 16.09.2015 / 23:22

1 resposta

9

Aqui está o que git config --help diz:

core.fscache
Enable additional caching of file system data for some operations.

Git for Windows uses this to bulk-read and cache lstat data of entire directories (instead of doing lstat file by file).

Em vez de fazer muitas requisições do sistema de arquivos, o git fará apenas uma requisição para obter informações sobre todos os arquivos no diretório.

Mais descrição técnica pode ser encontrada em commit que introduziu fscache :
Win32: adicione um cache abaixo das implementações de lstat e dirent da mingw

Checking the work tree status is quite slow on Windows, due to slow lstat emulation (git calls lstat once for each file in the index). Windows operating system APIs seem to be much better at scanning the status of entire directories than checking single files.

Add an lstat implementation that uses a cache for lstat data. Cache misses read the entire parent directory and add it to the cache. Subsequent lstat calls for the same directory are served directly from the cache.

Also implement opendir / readdir / closedir so that they create and use directory listings in the cache.

The cache doesn't track file system changes and doesn't plug into any modifying file APIs, so it has to be explicitly enabled for git functions that don't modify the working copy.

    
por 17.09.2015 / 19:32