1

У меня есть огромный файл /etc /hosts с 18 000 строк. Я использую это, чтобы заблокировать рекламодателей и тому подобное. Кажется, у меня неплохо работает браузер, но мне интересно, есть ли какой-нибудь размер, при котором я начну замедляться? Как ОС хранит файл hosts во время работы? Я могу придумать множество способов, от медленных до быстрых, и мое априорное предположение состоит в том, что он обрабатывается эффективно, так как он так важен для работы в сети. Вот несколько способов, которые я могу придумать, от простого к более сложному:

  • Читайте из файла каждый раз, когда это необходимо.
  • Читать один раз
    • линейный поиск
    • сортировка, затем бинарный поиск
    • использовать три
    • использовать хеш, но как это минимизирует коллизии

Есть много способов, которые кажутся разумными. Что на самом деле используется?

Похоже, что на этот вопрос где-то был дан ответ, так что ссылки на существующий ресурс приветствуются. Я посмотрел, но, возможно, не в нужном месте.

1 ответ1

1

Вы должны указать, какую ОС вы используете, но в любом случае, обычный способ улучшить производительность разрешения имен в Unix и Unix-подобных системах - это использовать демон (обычно nscd), который кэширует положительные и отрицательные разрешения и быстро отвечает на большинство запросов. При изменении /etc /hosts, по крайней мере в Solaris, этот кеш становится недействительным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .