Как делают дескриптор ОС/etc/hosts алгоритмически?

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

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

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

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

1
задан 10.10.2010, 05:51

1 ответ

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

1
ответ дан 17.12.2019, 00:32

Теги

Похожие вопросы