<?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="hu">

    <info>
      <link type="guide" xref="index#faq"/>
    
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Úr Balázs</mal:name>
      <mal:email>ur dot balazs at fsf dot hu</mal:email>
      <mal:years>2023.</mal:years>
    </mal:credit>
  </info>
    <title>Mit jelent a kupac?</title>

    <section id="what-does-heap-mean">
      <title>Mit jelent a „Fájlban [kupac]”?</title>

      <p>Ez azt jelenti, hogy a sysprof azt hiszi, hogy egy függvényt valahonnan a program kupacából hívtak meg (ahol a <code>malloc</code> memóriát foglal le), nem pedig a kódszakaszból (ahol a futtatható kód általában található). Több lehetséges magyarázat is van.</p>
    </section>

    <section id="jit">
      <title>JIT (Just in Time – magyarul: épp időben) fordítók</title>

      <p>Az olyan nyelvek, mint a Java, képesek végrehajtható kódot előállítani a program futása közben, és azt a kupacban tárolni. A Sysprof ebben az esetben pontosan jelenti a helyzetet.</p>
    </section>

    <section id="optimizing">
      <title>Fordítók optimalizálása</title>

      <p>A C és C++ fordítók képesek optimalizálni a függvény hívójának meghatározásához szükséges információkat, ezért tévesen [kupac] lesz feltételezve. Továbbra is meg lehet mondani, hogy az egyes függvényeket milyen gyakran hívja a program, de azt már nem mindig, hogy honnan.</p>

      <note>
        <p>A gcc esetén a <code>-fno-omit-frame-pointer</code> jelző megakadályozza ezt az optimalizálást. A jelző nem mindig szükséges, például x86_64 gépeken csak az -O3 optimalizálással van rá szükség.</p>
      </note>

      <note>
        <p>Ahhoz, hogy a legrészletesebb és legpontosabb hívásfát kapja a nem optimalizált kódból, használja ezeket a jelzőket: <code>-ggdb -fno-omit-frame-pointer -O0</code></p>
      </note>
    </section>
</page>
