Au fur et à mesure que les flux de données doivent être rapides, on se rend compte que la mémoire joue un rôle essentiel. La consommation de la mémoire est devenue un enjeu d’importance pour l’informatique en général, des smartphones aux datacenters, en passant par les ordinateurs de bureau.
Par exemple, sur les appareils Android d’entrée de gamme, Google rapporte que plus de 99 % des crashs de son navigateur Chrome sont dus à un manque de mémoire lors de l’affichage d’une page web. Sur les ordinateurs de bureau, le navigateur Firefox s’est considérablement amélioré ces cinq dernières années pour réduire son empreinte mémoire. Dans les datacenters, les développeurs mettent en œuvre une palette de techniques afin d’augmenter l’utilisation de la mémoire.
L’optimisation de la mémoire repose notamment sur les qualités (ou limites en l’occurrence) des langages de programmation. Une équipe du College of Information et Computer Science (CICS), appartenant à l’Université du Massachusetts Amherst, a peut-être trouvé une solution.
Une réduction de la consommation
Baptisée Mesh, leur solution serait capable de comprimer la mémoire des applications écrites ou fonctionnant sur des langages de programmation largement utilisés comme C, C++ ou Objective C, le langage utilisé dans les applications iOS d’Apple. Parmi les membres de cette équipe, le professeur Emery Berger a d’ailleurs conçu l’algorithme sur lequel est basé le gestionnaire de mémoire Mac OS X d’Apple.
Les programmes écrits en C/C++ peuvent souffrir d’une grave fragmentation de la mémoire, entraînant une faible utilisation de la mémoire, des performances dégradées et même des défaillances d’applications dues à un épuisement de la mémoire. Ce problème s’étend à des langages comme Ruby et Python, où les interprètes standard pour ces langages sont eux-mêmes des programmes C. Mesh serait capable de combler efficacement ces « trous » dans la mémoire en tirant parti d’une fonction matérielle appelée « mémoire virtuelle » prise en charge par tous les ordinateurs.
« Lorsque Mesh trouve ces morceaux fragmentés, il peut récupérer la mémoire d’un des morceaux en les combinant entre eux. Ce processus de maillage fonctionne parce que nous ne touchons pas à la mémoire “physique” », explique l’équipe.
Mesh combine de nouveaux algorithmes randomisés avec des opérations de mémoire virtuelle largement supportées pour réduire la fragmentation de manière importante.
Ses résultats sont en effet prometteurs. L’utilisation de Mesh réduit automatiquement les besoins en mémoire du navigateur Firefox de 16 %. Pour Redis, un serveur de structure de données open source, Mesh réduit la demande de mémoire de près de 40 %.
Dans l'actualité
- Réinventer la mémoire de nos ordinateurs en s’inspirant du cerveau
- Google : entre informatique et innovations
- Variété des données et vitesse d’analyse : deux composantes clés de l’approche big data
- La programmation, latin du futur ?
- Quelles écoles forment les meilleurs développeurs ?
- Recherche désespérément programmeurs en vieux langages informatiques…