14 septembre 2026 à 10h (INRIA Lille)
Les langages de programmation modernes fournissent une gestion automatique de la mémoire grâce aux garbage collectors. Les garbage collectors sont des composants logiciels complexes qui exposent des centaines de paramètres configurables. Le diagnostic des problèmes de performance liés à la mémoire nécessite des informations dynamiques sur la durée de vie des objets et leurs contextes d'allocation. Cependant, le profiling de ces informations est difficile en raison du surcoût de l'instrumentation, des effets d'observation et des biais de mesure. Ces défis sont amplifiés dans les langages purement orientés objet, où chaque allocation est réalisée par envoi de message à travers un très petit ensemble de méthodes primitives d'allocation partagées par l'ensemble du système, et où l'instrumentation doit coexister avec l'infrastructure réflexive du langage. Cette thèse étudie le profiling mémoire et les optimisations mémoire guidées par le profiling pour les langages dynamiquement typés et purement orientés objet, en utilisant Pharo comme plateforme d'expérimentation. Elle apporte (i) mps, une bibliothèque de contrôle du passage de messages meta-safe, unwind-safe et compatible avec le JIT, qui sert de backend d'instrumentation pour le reste des travaux ; (ii) illi, un framework permettant de construire des profileurs mémoire personnalisés, ainsi que filip, un profileur de durée de vie des objets construit au-dessus de illi, qui utilise une finalisation fondée sur les ephemerons pour estimer les durées de vie sans modification de la virtual machine ; et (iii) un algorithme de pretenuring path-sensitive qui exploite les informations de call stack fournies par filip afin d'affiner la notion d'allocation site au-delà des définitions textuelles traditionnelles. Le pretenuring classique repose sur l'allocation site textuel -- c'est-à-dire la méthode et l'offset de bytecode où apparaît une instruction d'allocation. Dans les langages purement orientés objet, cependant, chaque allocation transite par un petit ensemble de méthodes primitives partagées par l'ensemble du système, de sorte que tous les allocation sites textuels se réduisent à quelques méthodes seulement. Nous évaluons cette stratégie sur des applications réelles et constatons qu'elle produit des améliorations limitées et peu cohérentes, et qu'elle peut même dégrader les performances en appliquant le pretenuring à des objets de courte durée de vie provenant d'appelants sans rapport. Nous proposons un algorithme de pretenuring path-sensitive qui remédie à cette limitation en intégrant le contexte complet d'appel dans l'identification des allocation sites. L'algorithme construit un graphe pondéré des appels d'allocation à partir d'échantillons de profiling, classe ses arêtes selon la durée de vie des objets et réécrit le code applicatif afin d'appliquer sélectivement le pretenuring aux chemins d'allocation associés à des objets de longue durée de vie. Le pretenuring path-sensitive améliore systématiquement la stratégie textuelle et permet d'obtenir des accélérations allant jusqu'à 11,% sur des applications réelles. Les techniques proposées sont évaluées sur des applications Pharo réelles. mps introduit un surcoût moyen d'instrumentation de $1.54 imes$ et est en moyenne $6.47 imes$ plus rapide qu'une implémentation équivalente qui n'est pas intégrée au compilateur JIT. Il est montré que filip est actionable au sens de Mytkowicz~etal, avec un surcoût moyen sur le temps d'exécution de $1.26 imes$ pour un taux de sampling de $0.1%$. Conformément aux principes de l'open science, tous les artefacts sont publiés sous licence MIT et ont été utilisés pour identifier et corriger des problèmes de mémoire dans du code Pharo utilisé en production.
M. Stéphane DUCASSE Directeur de recherche Université de Lille Directeur de thèse, M. Guillermo POLITO Chargé de recherche INRIA Co-directeur de thèse, M. Tobias WRIGSTAD Full professor Uppsala University Rapporteur, M. Gaël THOMAS Directeur de recherche INRIA Rapporteur, Mme Gordana RAKIC Associate Professor University of Novi Sad Examinatrice.