# Búsquedas de disco consideradas dañinas

Las búsquedas de disco son una de las operaciones más caras que puede realizar. Puede que no sepa esto simplemente mirando cuántas se realizan, pero crea que realmente lo son. Por ello, evite los siguientes comportamientos:

- Ubicar montones de pequeños archivos por todo el disco.

- Abrir, iniciar y leer montones de archivos por todo el disco.

- Realizar lo anterior sobre archivos que se abren en diferentes momentos, para asegurarse de que están fragmentados y causan aún más búsqueda del disco.

- Realizar lo siguiente sobre archivos que están en diferentes directorios, para asegurarse de que están en grupos de cilindros diferentes y pueden causar incluso más búsqueda.

- Realizar repetidamente lo anterior cuando sólo se necesita realizar una vez.

Formas en las que puede optimizar su código para que sea amigable a la hora de hacer búsquedas:

- Consolidar los datos en un solo archivo.

- Mantener los datos juntos en el mismo directorio.

- Cachear los datos para no tener que volver a leerlos constantemente.

- Compartir los datos para no tener que volver a leerlos del disco cada vez que una aplicación se carga.

- Considerar cachear todos los datos en un archivo binario único que está alineado apropiadamente y se puede mapear.

The trouble with disk seeks are compounded for reads, which is unfortunately what we are doing. Remember, reads are generally synchronous while writes are asynchronous. This only compounds the problem, serializing each read, and contributing to program latency.