Profilage mémoire d’applications OCaml

par Çağdaş Bozman

Thèse de doctorat en Informatique

Sous la direction de Michel Mauny.

Soutenue en 2014

à Palaiseau, Ecole polytechnique .


  • Résumé

    La récupération automatique de la mémoire est une caractéristique commune des langages de programmation. Elle offre certes au programmeur des garanties de fiabilité, mais, en éloignant ce dernier des détails de la gestion de la mémoire, elle rend plus difficile la compréhension et, a fortiori, la maîtrise des allocations de mémoire. OCaml, langage multi-paradigme statiquement typé développé à l'INRIA. Utilise un ramasse-miettes (GC) en charge du recyclage automatique de la mémoire et ses utilisateurs réclament des outils d'analyse du comportement mémoire de leurs programmes. Dans le cadre de cette thèse, nous avons étudié d'une façon générale le problème de comportement mémoire des applications écrites en OCaml et plus précisément le cas des fuites mémoires, c'est-à-dire des blocs alloués et non recyclés bien qu'ils soient devenus inutiles au calcul. Cette thèse présente, après un rappel des méthodes connues d'analyse du comportement mémoire des applications, une méthode d'instrumentation de la chaîne de compilation et de la bibliothèque d'exécution des programmes. Cette instrumentation est à la base d'outils que nous avons conçus et mis en oeuvre, et qui permettent de catégoriser, visualiser et localiser les allocations de mémoire. Les résultats et outils présentés dans cette thèse ont été obtenus dans le cadre d'une collaboration entre l'ENSTA-ParisTech, l'INRIA et la société OCamlPro SAS, et ont été utilisés avec succès dans un contexte industriel.

  • Titre traduit

    Memory profiling of OCaml applications


  • Résumé

    Automatic memory reclaim is a common feature of programming languages. It offers to the programmers some guarantees about reliability, but, by taking them away from the implementation details of the memory management, it makes it more difficult to understand and control memory allocations. OCaml is a multi-paradigm statically typed programming language developed at INRIA. It uses a garbage collector (GC) in charge of the automatic reclaim of unused memory and OCaml users need tools for analyzing the memory behavior of their programs. As part of this thesis, we studied the memory behavior of applications written in OCaml and more specifically the case of memory leaks: still accessible memory blocks (hence not reclaim by the GC) that are no longer needed for the computation. In this thesis, after describing some known methods for analyzing the memory behavior of applications, we present an instrumentation method of the OCaml toolchain and runtime. This instrumentation then is used by tools that we have designed and implemented, and used to categorize, visualize and locate memory allocations. Results and tools presented in this thesis were obtained as part of a collaboration between ENSTA ParisTech, INRIA and OCamlPro SAS, and have been successfully used in an industrial context.

Consulter en bibliothèque

La version de soutenance existe sous forme papier

Informations

  • Détails : 1 vol. (155 p.)
  • Annexes : Bibliographie : 99 réf.

Où se trouve cette thèse ?

  • Bibliothèque : École polytechnique. Bibliothèque Centrale.
  • Disponible pour le PEB
Voir dans le Sudoc, catalogue collectif des bibliothèques de l'enseignement supérieur et de la recherche.