Wie gehen Betriebssysteme algorithmisch mit /etc/hosts um?

Wie gehen Betriebssysteme algorithmisch mit /etc/hosts um?

Ich habe eine riesige /etc/hosts-Datei mit 18.000 Zeilen. Ich verwende sie, um Adserver und dergleichen zu blockieren. Meine Browsing-Leistung scheint in Ordnung zu sein, aber ich frage mich, ob es eine gewisse Größe gibt, ab der ich langsamer werde. Wie speichern Betriebssysteme die Hosts-Datei während des Betriebs? Mir fallen viele Möglichkeiten ein, von langsam bis schnell, und ich gehe a priori davon aus, dass dies effizient gehandhabt wird, da es für die Vernetzung so zentral ist. Hier sind einige Möglichkeiten, die mir einfallen, von einfach bis komplex:

  • Bei Bedarf aus der Datei lesen.
  • Einmal lesen
    • lineare Suche
    • Sortieren, dann binäre Suche
    • benutze einen Trie
    • Verwenden Sie einen Hash, aber wie minimiert er Kollisionen?

Viele Möglichkeiten erscheinen sinnvoll. Was wird tatsächlich genutzt?

Es scheint, als ob diese Frage irgendwo schon einmal beantwortet wurde, daher sind Hinweise auf eine vorhandene Ressource willkommen. Ich habe nachgesehen, aber vielleicht nicht am richtigen Ort.

Antwort1

Sie sollten angeben, welches Betriebssystem Sie verwenden. Eine übliche Methode zur Verbesserung der Namensauflösungsleistung unter Unix und Unix-ähnlichen Systemen besteht jedoch darin, einen Daemon (üblicherweise nscd) zu verwenden, der positive und negative Auflösungen zwischenspeichert und die meisten Anfragen schnell beantwortet. Wenn /etc/hosts geändert wird, wird dieser Cache zumindest unter Solaris ungültig.

verwandte Informationen