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

    <info>
      <link type="guide" xref="index#faq"/>
    
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Andika Triwidada</mal:name>
      <mal:email>andika@gmail.com</mal:email>
      <mal:years>2022</mal:years>
    </mal:credit>
  </info>
    <title>Apa yang dimaksud dengan heap?</title>

    <section id="what-does-heap-mean">
      <title>Apa arti "Dalam berkas [heap]"?</title>

      <p>Ini berarti bahwa sysprof percaya bahwa suatu fungsi dipanggil dari suatu tempat di heap program (di mana <code>malloc</code> mengalokasikan memori) daripada bagian kode (di mana kode yang dapat dieksekusi biasanya hidup.) Ada beberapa kemungkinan penjelasan.</p>
    </section>

    <section id="jit">
      <title>Kompiler JIT (Just in Time)</title>

      <p>Bahasa seperti Java dapat menghasilkan kode yang dapat dieksekusi saat program sedang berjalan dan menyimpannya di heap. Sysprof secara akurat melaporkan situasi dalam kasus ini.</p>
    </section>

    <section id="optimizing">
      <title>Mengoptimalkan kompiler</title>

      <p>Kompiler C dan C++ dapat mengoptimalkan informasi yang diperlukan untuk menentukan pemanggil fungsi, sehingga disalahartikan sebagai [heap]. Anda masih dapat mengetahui seberapa sering setiap fungsi dipanggil oleh program, tetapi tidak selalu dari mana.</p>

      <note>
        <p>Untuk gcc, flag <code>-fno-omit-frame-pointer</code> akan mencegah pengoptimalan ini. Flag tidak selalu diperlukan, misalnya pada mesin x86_64 hanya diperlukan dengan optimasi -O3.</p>
      </note>

      <note>
        <p>Untuk mendapatkan pohon panggilan yang paling rinci dan akurat dari kode yang tidak dioptimalkan, gunakan flag ini: <code>-ggdb -fno-omit-frame-pointer -O0</code></p>
      </note>
    </section>
</page>
