Como o SO manipula / etc / hosts por algoritmos?

1

Eu tenho um enorme arquivo / etc / hosts com 18.000 linhas. Eu uso para bloquear servidores de anúncios e tal. Meu desempenho de navegação parece estar bem, mas eu me pergunto se há algum tamanho no qual eu vou começar a me atrasar? Como o sistema operacional armazena o arquivo hosts durante a operação? Eu posso pensar em muitas maneiras, de lentas a rápidas, e a minha suposição a priori é que elas são tratadas com eficiência, uma vez que são tão centrais para o trabalho em rede. Aqui estão algumas maneiras que eu posso pensar de simples a mais complexas:

  • Leia o arquivo toda vez que for necessário.
  • Ler uma vez
    • pesquisa linear
    • classificar e, em seguida, pesquisa binária
    • use um trie
    • usa um hash, mas como minimiza as colisões

Existem muitas maneiras que parecem razoáveis. O que é realmente usado?

Parece que esta pergunta deve ter sido respondida em algum lugar, então indicadores para um recurso existente são bem-vindos. Eu olhei, mas talvez não no lugar certo.

    
por user43031 10.10.2010 / 04:51

1 resposta

1

Você deve dizer qual SO está usando, mas de qualquer forma, um método usual para melhorar o desempenho de resolução de nomes com sistemas Unix e Unix é usar um daemon (normalmente nscd) que armazena em cache resoluções positivas e negativas e responde rapidamente a maioria das solicitações. Quando / etc / hosts é modificado, pelo menos no Solaris, esse cache é invalidado.

    
por 10.10.2010 / 12:14