Я делаю некоторые сравнительные тесты сжатия файлов с / без гипервизора с помощью gzip. Команда, которую я запускаю, чтобы проверить, сколько времени занимает выполнение файла:
time gzip -c filename.txt > filename.txt.gz
Я немного сбит с толку, потому что когда я в первый раз запускаю команду для нового файла, время всегда ~ вдвое дольше любого последующего теста до перезагрузки. Например:
1st run: .50 seconds
2nd run: .25 seconds
3rd run: .26 seconds
...
Почему такая разница во времени? Сохраняет ли gzip сжатие в памяти или где-то еще, например, во временном файле?
Спасибо за любую помощь!
Хотя gzip
не кэширует ваши файлы, Linux делает. Любая память, не требующаяся для запуска программ, используется в качестве дискового кеша, и после первого прочтения filename.txt
она будет добавлена в кеш. Таким образом, при условии, что он не будет изменен в это время, последующее чтение файла получит копию уже в памяти, что, вероятно, объясняет ускорение.