<?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>
