Profilage mémoire d’applications OCaml - PASTEL - Thèses en ligne de ParisTech
Thèse Année : 2014

Memory profiling of OCaml applications

Profilage mémoire d’applications OCaml

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.
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.
Fichier principal
Vignette du fichier
thesis-cagdas-bozman.pdf (2.72 Mo) Télécharger le fichier
Loading...

Dates et versions

tel-01122262 , version 1 (03-03-2015)

Identifiants

  • HAL Id : tel-01122262 , version 1

Citer

Çağdaş Bozman. Profilage mémoire d’applications OCaml. Informatique [cs]. ENSTA ParisTech, 2014. Français. ⟨NNT : ⟩. ⟨tel-01122262⟩
273 Consultations
1480 Téléchargements

Partager

More