Chcę porównać szybkość tych dwóch poleceń:
grep pattern1 files*
grep pattern2 files*
Niestety, pierwszy grep wczytuje dużą część plików * do buforów pamięci, więc drugi grep działa bardzo szybko, ale z niewłaściwego powodu.
Jak mam powiedzieć Linuksowi (Fedora 11): „proszę przestań buforować odczyt dysku, ponieważ coś testuję”.
Odpowiedzi:
Nie sądzę, żebyś mógł łatwo powiedzieć „chwilowo przestań buforować”. Ale możesz powiedzieć systemowi, aby upuścił pamięć podręczną przed każdym uruchomieniem:
Jako root:
(Jest to udokumentowane w dokumentacji jądra w Documentation / sysctl / vm.txt , co jest przydatne, jeśli jak niektórzy z nas nie zawsze pamiętasz od razu, co robią wartości 1, 2 lub 3).
Lub, alternatywnie, oczywiście zalej pamięć podręczną i porównaj wydajność pamięci podręcznej. (Myślę, że oba są użytecznymi liczbami.)
źródło
echo 1
spowoduje jedynie upuszczenie pamięci podręcznej strony, a nie pamięci podręcznych dysków.Podczas mierzenia czasu takich rzeczy zwykle uruchamiam je najpierw, aby zalać pamięć podręczną. Następnie uruchom polecenie, używając czasu. Testując coś takiego, powinieneś bardziej przejmować się procesorem i upływającymi czasami, a mniej przejmować się czasem we / wy.
W każdym razie trudno jest uzyskać w pełni dokładne czasy. Jeśli pliki wejściowe przekroczą rozmiar pamięci dostępnej dla buforów, prawdopodobnie skończysz cyklicznie wszystkie pliki w buforze pamięci podręcznej. W przeciwnym razie możesz uzyskać dostęp do wszystkich danych z bufora pamięci podręcznej. W prawdziwym życiu często występuje połączenie danych buforowanych i danych odczytywanych z dysku.
źródło