Blame optimization-guide/pt_BR/harmful.page

Packit 1470ea
Packit 1470ea
<page xmlns="http://projectmallard.org/1.0/" type="guide" style="task" id="harmful" xml:lang="pt-BR">
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>Enrico Nicoletto</mal:name>
Packit 1470ea
      <mal:email>liverig@gmail.com</mal:email>
Packit 1470ea
      <mal:years>2012</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>Rafael Fontenelle</mal:name>
Packit 1470ea
      <mal:email>rafaelff@gnome.org</mal:email>
Packit 1470ea
      <mal:years>2013, 2014, 2017</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  </info>
Packit 1470ea
    <title>Buscas em disco são consideradas prejudiciais</title>
Packit 1470ea
    

Buscas em disco são uma das operações mais custosas que você possivelmente pode realizar. Você pode não saber isto apenas olhando quantas delas realizamos porém, acredite em mim, elas são. Deste modo, por favor abstenha-se deste comportamento abaixo do normal que se segue:

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

Colocando vários pequenos arquivos sobre todo o disco.

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

Abrindo, iniciando, e lendo vários arquivos sobre todo o disco

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

Fazer o que está acima em arquivos que são dispostos em tempos diferentes, garante que os arquivos são fragmentados e causem ainda mais buscas em disco.

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

Fazer o que está acima em arquivos que estão em diferentes diretórios, garante que os arquivos estão em diferentes grupos de cilindros e causem ainda mais buscas em disco.

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

Faça repetidamente o que está acima apenas quando for necessário fazer uma única vez.

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

Modos pelos quais você pode otimizar seu código para realizar pesquisas de forma amigável:

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

Consolidar os dados em um único arquivo.

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

Manter os dados juntos no mesmo diretório.

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

Fazer cache dos dados a fim de não precisar relê-los constantemente.

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

Compartilhar os dados a fim de não precisar relê-los a partir do disco rígido quando cada aplicativo é carregado.

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

Considerar fazer cache de todos os dados em um único arquivo binário, o qual está corretamente alinhado e que pode ser mapeado.

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

Os problemas com pesquisas em disco são agravados pelas leituras as quais, infelizmente, são o que estamos fazendo. Lembre-se, leituras são geralmente síncronas enquanto escritas são assíncronas. Isto só agrava o problema, serializando cada leitura e contribuindo para a latência do programa.

Packit 1470ea
</page>