O grep usa um cache para acelerar as pesquisas?

35

Tenho notado que execuções subsequentes de grep na mesma consulta (e também uma consulta diferente, mas em o mesmo arquivo) são muito mais rápidos do que a primeira execução (o efeito é facilmente perceptível ao pesquisar em um arquivo grande).

Isso sugere que o grep usa algum tipo de armazenamento em cache das estruturas usadas para pesquisa, mas não consegui encontrar uma referência na Internet.

Qual mecanismo permite que grep retorne resultados mais rapidamente em pesquisas subseqüentes?

    
por Lazer 09.03.2011 / 11:09

3 respostas

60

Não é o grep, mas o próprio sistema de arquivos armazena os dados recentemente lidos, fazendo com que as execuções posteriores sejam mais rápidas, já que o grep está efetivamente procurando na memória, em vez de no disco.

    
por 09.03.2011 / 11:12
19

Os sistemas Linux e * NIX fazem uso de vários caches que ficam entre os sistemas de arquivos (abstraídos através do VFS) e os processos no nível do usuário. Então não é grep e não é o sistema de arquivos que faz o cache - é o sistema operacional.

O cache responsável por seu desempenho no grep é o Cache de Buffer VFS. Outros caches são para inodes e diretórios, mas esses não entram em jogo aqui.

Para mais informações, consulte: Projeto de documentação do Linux: 9.2 O link

do Virtual File System     
por 09.03.2011 / 16:35
1

E se você estiver procurando por uma versão em cache do grep, confira link

    
por 14.04.2014 / 13:38