<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" type="topic" id="faq" xml:lang="fr">

    <info>
      <link type="guide" xref="index#faq"/>
    
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Julien Hardelin,</mal:name>
      <mal:email>jhardlin@orange.fr</mal:email>
      <mal:years>2016</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Vincent Chatelain,</mal:name>
      <mal:email>vinchatl_gnome@proton.me</mal:email>
      <mal:years>2024&gt;</mal:years>
    </mal:credit>
  </info>
    <title>Que signifie le tas ?</title>

    <section id="what-does-heap-mean">
      <title>Que signifie « Dans fichier [tas] » ?</title>

      <p>Cela signifie que Sysprof pense qu’une fonction a été appelée depuis un endroit du tas du programme (où <code>malloc</code> alloue la mémoire) plutôt que depuis la section de code (où le code exécutable réside normalement). Il y a plusieurs explications possibles.</p>
    </section>

    <section id="jit">
      <title>Compilateurs JIT (Just in Time, juste-à-temps en français)</title>

      <p>Des langages comme Java peuvent générer du code exécutable pendant l’exécution d’un programme et le stocker dans le tas. Dans ce cas, Sysprof rend compte avec précision de la situation.</p>
    </section>

    <section id="optimizing">
      <title>Optimisation des compilateurs</title>

      <p>Les compilateurs C et C++ peuvent optimiser les informations nécessaires pour déterminer l’appelant d’une fonction, de sorte qu’il est confondu avec le [tas]. Il est toujours possible de connaître la fréquence d’appel de chaque fonction, mais pas toujours son endroit d’appel.</p>

      <note>
        <p>Pour gcc, le drapeau <code>-fno-omit-frame-pointer</code> évite cette optimisation. Le drapeau n’est pas toujours nécessaire, et n’est par exemple requis que pour l’optimisation -O3 sur les architecture x86_64.</p>
      </note>

      <note>
        <p>Pour avoir un graphe d’appels le plus détaillé et précis possible à partir de code non optimisé, utilisez ces drapeaux : <code>-ggdb -fno-omit-frame-pointer -O0</code></p>
      </note>
    </section>
</page>
