Zauważyłem, że kolejne uruchomienia grep
tego samego zapytania (a także innego zapytania, ale w tym samym pliku) są znacznie szybsze niż pierwsze uruchomienie (efekt jest łatwo zauważalny podczas przeszukiwania dużego pliku).
Sugeruje to, że grep używa pewnego rodzaju buforowania struktur używanych do wyszukiwania, ale nie mogłem znaleźć odnośnika w Internecie.
Jaki mechanizm umożliwia grep
szybsze zwracanie wyników w kolejnych wyszukiwaniach?
Systemy Linux i * NIX korzystają z różnych pamięci podręcznych znajdujących się między systemami plików (wyodrębnionymi przez VFS) a procesami na poziomie użytkownika. Więc to nie jest grep i to nie system plików buforuje - to system operacyjny.
Pamięć podręczna odpowiedzialna za wydajność grep to pamięć podręczna buforu VFS. Inne pamięci podręczne są przeznaczone dla i-węzłów i katalogów, ale te nie wchodzą tutaj w grę.
Aby uzyskać więcej informacji, zobacz: Projekt dokumentacji systemu Linux: 9.2 Wirtualny system plików http://tldp.org/LDP/tlk/fs/filesystem.html
źródło
/usr/include
około ~ 16,4 sekundy w moim systemie zrzucił wszystkie pamięci podręczne. Wszystko buforowane, około 0,3 sekundy. Jeśli upuszczę tylko pamięć podręczną strony (która zawiera pamięć podręczną bufora), zajmuje to około 14,3 sekundy. Jeśli opuszczę pamięć podręczną strony i upuszczę pamięć podręczną dentysty / i-węzła, będzie to około 12 sekund.A jeśli są szuka pamięci podręcznej wersji grep, sprawdź https://stackoverflow.com/questions/7734596/grep-but-indexable
źródło