1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
<?xml version="1.0" encoding="utf-8"?>
<chapter>
<title>Buscas de disco consideradas dañinas</title>
<para>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.</para>
<itemizedlist>
<listitem>
<para>Localizar montóns de pequenos ficheiros por todo o disco.</para>
</listitem>
<listitem>
<para>Abrir, iniciar e ler montóns de ficheiros por todo o disco.</para>
</listitem>
<listitem>
<para>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.</para>
</listitem>
<listitem>
<para>Realizar o seguinte sobre ficheiros que están en diferentes cartafoles, para asegurarse de que están en grupos de cilindros diferentes e poden causar incluso máis buscas.</para>
</listitem>
<listitem>
<para>Realizar de forma repetida o anterior cando só se precisa realizar unha vez.</para>
</listitem>
</itemizedlist>
<para>Formas nas que pode optimizar o seu código para que sexa amigábel á hora de facer buscas:</para>
<itemizedlist>
<listitem>
<para>Consolidar os datos nun só ficheiro.</para>
</listitem>
<listitem>
<para>Manter os datos xuntos no mesmo cartafol.</para>
</listitem>
<listitem>
<para>Cachear os datos para non ter que volver a lelos constantemente.</para>
</listitem>
<listitem>
<para>Compartir os datos para non ter que volver a lelos do disco cada vez que un aplicativo se carga.</para>
</listitem>
<listitem>
<para>Considerar cachear tódolos datos nun ficheiro binario único que está aliñado axeitadamente e pódse mapear.</para>
</listitem>
</itemizedlist>
<para>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.</para>
</chapter>
|