Utiliser moins de mémoire pour... Note

Utiliser moins de mémoire pour rechercher les adresses IP dans Mess With DNS

L'auteur de Mess With DNS rencontrait des problèmes avec le programme qui consommait trop de mémoire et était tué par le gestionnaire de mémoire (OOM), ce qui causait des problèmes avec le script de sauvegarde. Pour résoudre cela, l'auteur a décidé d'essayer de faire en sorte que Mess With DNS consomme moins de mémoire. Le programme charge une base de données d'adresses IP en mémoire, ce qui utilisait environ 117 Mo de mémoire. L'auteur a essayé trois approches différentes pour réduire l'utilisation de la mémoire.La première approche consistait à utiliser SQLite pour stocker les données sur disque, ce qui a résolu le premier objectif de mémoire mais a rencontré des problèmes pour stocker les adresses IPv6 et était 500 fois plus lent que la recherche binaire originale. La deuxième approche consistait à utiliser un trie, mais elle utilisait plus de mémoire et était plus lente que la recherche binaire originale.La troisième approche consistait à faire en sorte que le tableau utilise moins de mémoire en dédupliquant les champs Name et Country, ce qui a réduit l'utilisation de la mémoire de 117 Mo à 65 Mo, puis en passant à netip.Addr au lieu de net.IP, ce qui a économisé 20 Mo de mémoire supplémentaires, portant le total à 46 Mo. L'auteur a pu économiser 70 Mo de mémoire au total.