Quiero comparar la velocidad de estos dos comandos:
grep pattern1 files*
grep pattern2 files*
Desafortunadamente, el primer grep lee gran parte de los archivos * en las memorias intermedias, por lo que el segundo grep se ejecuta muy rápidamente, pero por la razón equivocada.
¿Cómo le digo a Linux (Fedora 11): "por favor, deje de almacenar en caché las lecturas de disco porque estoy probando algo".
Respuestas:
No creo que pueda decirle fácilmente "dejar temporalmente de almacenar en caché". Pero lo que puede hacer es decirle al sistema que deje caer el caché antes de cada ejecución:
Como root:
(Esto está documentado en los documentos del núcleo en Documentation / sysctl / vm.txt , lo cual es útil si, como algunos de nosotros, no siempre puede recordar de antemano lo que hacen los valores 1, 2 o 3).
O alternativamente, por supuesto, cebe el caché y compare el rendimiento en caché. (Creo que ambos son números útiles).
fuente
echo 1
solo eliminará la memoria caché de la página, no ninguna memoria caché de disco.Al cronometrar cosas como esta, generalmente lo ejecuto primero para cebar el caché. Luego ejecute el comando usando el tiempo. Al probar algo como esto, debería estar más preocupado por la CPU y los tiempos transcurridos, y menos preocupado por el tiempo de E / S.
En cualquier caso, es difícil obtener tiempos totalmente precisos. Si los archivos de entrada exceden el tamaño de la memoria disponible para las memorias intermedias, es probable que termine ciclando todos los archivos a través de la memoria caché de la memoria intermedia. De lo contrario, puede acceder a todos los datos de la memoria caché del búfer. En la vida real, a menudo hay una combinación de datos almacenados y datos leídos del disco.
fuente