Fran Diéguez
frandieguez@gnome.org 2011-2020

# Buscas de disco consideradas dañinas

As buscas de disco son unha das operacións máis caras que pode realizar. Pode que non saiba isto simplemente mirando cantas se realizan, pero crea que realmente o son. Por iso, evite os seguintes comportamentos:

Localizar montóns de pequenos ficheiros por todo o disco.

Abrir, iniciar e ler montóns de ficheiros por todo o disco

Realizar o anterior sobre ficheiros que se abren en diferentes momentos, para asegurarse de que están fragmentados e causan aínda máis buscas no disco.

Doing the above on files that are in different directories, so as to ensure that they are in different cylinder groups and cause even more seeking.

Realizar de forma repetida o anterior cando só se precisa realizar unha vez.

Formas nas que pode optimizar o seu código para que sexa amigábel á hora de facer buscas:

Consolidar os datos nun só ficheiro.

Manter os datos xuntos no mesmo cartafol.

Cachear os datos para non ter que volver a lelos constantemente.

Compartir os datos para non ter que volver a lelos do disco cada vez que unha aplicación se carga.

Consider caching all of the data in a single binary file that is properly aligned and can be mmapped.

O problema coas buscas nos discos complícase para as lecturas, que é desafortunadamente o que se busca. Lembre, as lecturas son xeralmente síncronas mentres que as escrituras son asíncronas. Isto só complica o problema, serializando cada lectura e contribuíndo á latencia do programa.