RSS Julia Evans
Seguir
Utilizando menos memoria para buscar direcciones IP en Mess With DNS
El autor de Mess With DNS estaba experimentando problemas con el programa que se quedaba sin memoria y era eliminado por falta de memoria (OOM), lo que llevaba a problemas con el script de respaldo. Para solucionar esto, el autor decidió intentar hacer que Mess With DNS utilizara menos memoria. El programa carga una base de datos de direcciones IP en memoria, lo que estaba utilizando alrededor de 117MB de memoria. El autor probó tres enfoques diferentes para reducir el uso de memoria.El primer enfoque fue utilizar SQLite para almacenar los datos en disco, lo que resolvió el objetivo inicial de memoria pero tuvo problemas con el almacenamiento de direcciones IPv6 y fue 500 veces más lento que la búsqueda binaria original. El segundo enfoque fue utilizar un trie, pero utilizó más memoria y fue más lento que la búsqueda binaria original.El tercer enfoque fue hacer que el arreglo utilizara menos memoria mediante la deduplicación de los campos Nombre y País, lo que redujo el uso de memoria de 117MB a 65MB, y luego cambiar a netip.Addr en lugar de net.IP, lo que ahorró otros 20MB de memoria, llevando el total a 46MB. El autor pudo ahorrar un total de 70MB de memoria.