Blame optimization-guide/es/harmful.page

Packit 1470ea
Packit 1470ea
<page xmlns="http://projectmallard.org/1.0/" type="guide" style="task" id="harmful" xml:lang="es">
Packit 1470ea
    <info>
Packit 1470ea
     <link type="guide" xref="index#harm"/>
Packit 1470ea
    
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Daniel Mustieles</mal:name>
Packit 1470ea
      <mal:email>daniel.mustieles@gmail.com</mal:email>
Packit 1470ea
      <mal:years>2012 - 2015</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Jorge González</mal:name>
Packit 1470ea
      <mal:email>jorgegonz@svn.gnome.org</mal:email>
Packit 1470ea
      <mal:years>2009-2010</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  </info>
Packit 1470ea
    <title>Búsquedas de disco consideradas dañinas</title>
Packit 1470ea
    

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:

Packit 1470ea
    <list type="unordered">
Packit 1470ea
        <item>
Packit 1470ea
            

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

Packit 1470ea
        </item>
Packit 1470ea
        <item>
Packit 1470ea
            

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

Packit 1470ea
        </item>
Packit 1470ea
        <item>
Packit 1470ea
            

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.

Packit 1470ea
        </item>
Packit 1470ea
        <item>
Packit 1470ea
            

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

Packit 1470ea
        </item>
Packit 1470ea
        <item>
Packit 1470ea
            

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

Packit 1470ea
        </item>
Packit 1470ea
    </list>
Packit 1470ea
    

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

Packit 1470ea
    <list type="unordered">
Packit 1470ea
        <item>
Packit 1470ea
            

Consolidar los datos en un solo archivo.

Packit 1470ea
        </item>
Packit 1470ea
        <item>
Packit 1470ea
            

Mantener los datos juntos en la mismo carpeta.

Packit 1470ea
        </item>
Packit 1470ea
        <item>
Packit 1470ea
            

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

Packit 1470ea
        </item>
Packit 1470ea
        <item>
Packit 1470ea
            

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

Packit 1470ea
        </item>
Packit 1470ea
        <item>
Packit 1470ea
            

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

Packit 1470ea
        </item>
Packit 1470ea
    </list>
Packit 1470ea
    

El problema de las búsquedas en los discos se complica para las lecturas, que es desafortunadamente lo que se busca. Recuerde, las lecturas son generalmente síncronas mientras que las escrituras son asíncronas. Esto sólo complica el problema, serializando cada lectura y contribuyendo a la latencia del programa.

Packit 1470ea
</page>