Почему запускается & ldquo; find & rdquo; Команда во второй раз завершена быстрее, чем в первый раз?

Когда я запускаю time find ~ в первый раз, что означает первый раз, когда я запускаю find в сеансе, это занимает больше времени, чем во второй раз. Почему это так?

Первый запуск:

real    0m12.410s
user    0m0.424s
sys     0m1.287s

Второй запуск:

real    0m0.988s
user    0m0.214s
sys     0m0.405s
5
задан 12 May 2019 в 16:06

1 ответ

Ссылка, предоставленная Rinzwind, названным, Почему [находка] работающий невероятный быстр, если выполнено дважды? и Что “кэшируется” в главной команде? охватите ту же проблему.

По существу, если свободная RAM доступна, ядро может использовать часть ее к информации о кэше. Память, используемая таким образом, может быть сделана доступной для приложений по требованию.

Linux поел, моя RAM объясняет условия такой как доступные, буферные, свободные, и используемые. Это также обеспечивает следующую команду для очистки "большей части дискового кэша":

echo 3 | sudo tee /proc/sys/vm/drop_caches

Для подтверждения, что находка более быстра во второй раз вокруг я работал time find ~ впервые:

real    0m10.765s
user    0m0.395s
sys     0m1.169s

И во второй раз для наблюдения благоприятного воздействия кэширования памяти:

real    0m1.119s
user    0m0.196s
sys     0m0.476s

Затем я очистил кэш с echo 3 | sudo tee /proc/sys/vm/drop_caches и работал time find ~ снова. Конечно же, время было высоко снова:

real    0m19.198s
user    0m0.457s
sys     0m1.425s

Но, из-за нового кэширования, выполнения находки впоследствии и как и следовало ожидать, показал улучшенное время:

real    0m1.100s
user    0m0.199s
sys     0m0.484s

При чтении о кэше я столкнулся, Кэшировать/предварительно загружать файлы на Linux в RAM и нескольких ответах, предложенных vmtouch - Виртуальная память Toucher: это описано как "Портативный кэш файловой системы диагностика и управление" и находится в repos для Бионического и более позднего.

3
ответ дан 12 May 2019 в 16:06

Другие вопросы по тегам:

Похожие вопросы: