grep은 검색 속도를 높이기 위해 캐싱을 사용합니까?

grep은 검색 속도를 높이기 위해 캐싱을 사용합니까?

후속 실행이grep동일한 쿼리(및 동일한 파일에 대한 다른 쿼리)에 대한 첫 번째 실행보다 훨씬 빠릅니다(대용량 파일을 검색할 때 효과가 쉽게 눈에 띕니다).

이는 grep이 검색을 위해 일종의 구조 캐시를 사용한다는 것을 의미하지만 인터넷에서 참조를 찾을 수 없습니다.

grep후속 검색에서 결과를 더 빨리 반환하는 메커니즘은 무엇입니까 ?

답변1

grep 자체는 아니지만 파일 시스템 자체가 최근에 읽은 데이터를 캐시하는 경우가 많아 grep이 디스크가 아닌 메모리에서 효과적으로 검색하기 때문에 후속 실행이 더 빨라집니다.

답변2

Linux 및 *NIX 시스템은 파일 시스템(VFS를 통해 추상화됨)과 사용자 수준 프로세스 사이에 있는 다양한 캐시를 활용합니다. 따라서 grep도 아니고 캐싱을 수행하는 파일 시스템도 아닙니다. 운영 체제입니다.

grep 성능을 담당하는 캐시는 VFS 버퍼 캐시입니다. 다른 캐시는 inode와 디렉터리에 사용되지만 이러한 캐시는 여기서 역할을 하지 않습니다.

자세한 내용은 Linux 문서 프로젝트: 9.2 가상 파일 시스템을 참조하세요.http://tldp.org/LDP/tlk/fs/filesystem.html

답변3

만약 너라면캐시된 grep 버전을 찾으려면 다음을 참조하세요.https://stackoverflow.com/questions/7734596/grep-but-indexable

관련 정보