Je fais des analyses comparatives sur la compression de fichiers avec/sans hyperviseur en utilisant gzip. La commande que j'exécute pour tester le temps nécessaire à l'exécution d'un fichier est:
time gzip -c filename.txt > filename.txt.gz
Je suis un peu confus, car la première fois que j'exécute la commande sur un nouveau fichier, le temps est toujours ~ deux fois plus long que tout test ultérieur jusqu'à ce que je redémarre. Par exemple:
1st run: .50 seconds
2nd run: .25 seconds
3rd run: .26 seconds
...
Pourquoi y aurait-il une telle différence de temps? Gzip stocke-t-il la compression en mémoire ou ailleurs comme un fichier temporaire?
Merci pour toute aide!
Alors que gzip
ne met pas vos fichiers en cache, Linux le fait. Toute mémoire non requise par l'exécution des programmes est utilisée comme cache disque, et après la première lecture de filename.txt
il sera ajouté au cache. Donc, à condition qu'il ne soit pas modifié entre-temps, la lecture ultérieure du fichier obtiendra la copie déjà en mémoire, ce qui explique probablement l'accélération.