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

    <info>
      <link type="guide" xref="index#faq"/>
    
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Piotr Drąg</mal:name>
      <mal:email>piotrdrag@gmail.com</mal:email>
      <mal:years>2017-2019</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Aviary.pl</mal:name>
      <mal:email>community-poland@mozilla.org</mal:email>
      <mal:years>2017-2019</mal:years>
    </mal:credit>
  </info>
    <title>Co oznacza „heap”?</title>

    <section id="what-does-heap-mean">
      <title>Co oznacza „In file [heap]”?</title>

      <p>Oznacza to, że Sysprof uważa, że funkcja została wywołana ze stosu programu (gdzie <code>malloc</code> przydziela pamięć) zamiast z sekcji kodu (gdzie zwykle znajduje się kod wykonywalny). Jest kilka możliwych wyjaśnień.</p>
    </section>

    <section id="jit">
      <title>Kompilatory JIT</title>

      <p>Języki typu Java mogą tworzyć kod wykonywalny podczas działania programu i przechowywać go na stosie. W takim przypadku Sysprof właściwie zgłasza sytuację.</p>
    </section>

    <section id="optimizing">
      <title>Kompilatory optymalizujące</title>

      <p>Kompilatory języków C i C++ mogą optymalizować (usuwać) informacje wymagane do ustalania wywołania funkcji, które jest mylone ze stosem. Nadal można badać częstość wywoływania każdej funkcji przez program, ale nie zawsze ich pochodzenie.</p>

      <note>
        <p>W przypadku kompilatora GCC flaga <code>-fno-omit-frame-pointer</code> wyłącza tę optymalizację. Nie jest ona zawsze wymagana, na przykład komputery w architekturze x86_64 wymagają jej tylko dla optymalizacji -O3.</p>
      </note>

      <note>
        <p>Użycie flag <code>-ggdb -fno-omit-frame-pointer -O0</code> umożliwia uzyskanie najbardziej szczegółowego i dokładnego drzewa wywołań z niezoptymalizowanego kodu.</p>
      </note>
    </section>
</page>
