Everything old is new again: memory optimization
L'article note qu'une forte demande de mémoire a rendu la RAM des appareils grand public plus limitée et a relancé l'intérêt pour l'optimisation de l'utilisation de la mémoire. L'exemple étudié consiste à écrire un script qui ouvre un fichier texte encodé en UTF-8, le découpe en mots selon les espaces, compte les occurrences et affiche les mots triés par fréquence décroissante. Une implémentation Python concise (moins de 30 lignes) affiche un pic de consommation d'environ 1,3 Mo sur un petit fichier (le README du dépôt). Une version native en C++ utilisant des string_view, mmap et une table de hachage pour les clés atteint un pic d'environ 100 Ko, soit environ 7,7 % de la consommation de la version Python. L'auteur précise que la comparaison est partiellement injuste en raison des coûts des environnements d'exécution et affirme qu'en supprimant le support des exceptions le binaire C++ pourrait descendre à ~21 Ko, soit une réduction potentielle d'environ 98,4 %.