mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2026-02-10 15:10:53 +00:00
help: add FAQ to help topics
- Initial question "what does 'In file [heap]' mean?" - Also updated README with some quick-install tips for RPM based systems.
This commit is contained in:
committed by
Christian Hergert
parent
4cb42d2f23
commit
195b60201d
20
README
20
README
@ -22,3 +22,23 @@ Debugging symbols
|
|||||||
- The programs and libraries you want to profile should be compiled
|
- The programs and libraries you want to profile should be compiled
|
||||||
with -fno-omit-frame-pointer and have debugging symbols available,
|
with -fno-omit-frame-pointer and have debugging symbols available,
|
||||||
or you won't get much usable information.
|
or you won't get much usable information.
|
||||||
|
|
||||||
|
|
||||||
|
Building Sysprof
|
||||||
|
----------------
|
||||||
|
|
||||||
|
You need some packages installed. The package names may vary depending on your
|
||||||
|
distribution, the following command works on Fedora 25:
|
||||||
|
|
||||||
|
sudo dnf install gcc make autoconf automake autopoint libtool ghc-gio
|
||||||
|
|
||||||
|
Then do the following:
|
||||||
|
|
||||||
|
./autogen.sh # configure, generate makefiles etc.
|
||||||
|
make # Build the code
|
||||||
|
make install # Install (default prefix /usr/local)
|
||||||
|
|
||||||
|
WARNING: `make install` will mostly install under the configured install prefix
|
||||||
|
but installs systemd service configuration directly in the system default
|
||||||
|
location `/usr/lib/systemd` so it won't work without root privileges, even if
|
||||||
|
the install prefix is a user-owned directory.
|
||||||
|
|||||||
46
help/C/faq.page
Normal file
46
help/C/faq.page
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
<page xmlns="http://projectmallard.org/1.0/"
|
||||||
|
xmlns:its="http://www.w3.org/2005/11/its"
|
||||||
|
type="topic"
|
||||||
|
id="faq">
|
||||||
|
|
||||||
|
<section id="what-does-heap-mean">
|
||||||
|
<info>
|
||||||
|
<link type="guide" xref="index#faq"/>
|
||||||
|
</info>
|
||||||
|
<title>What does "In file [heap]" mean?</title>
|
||||||
|
|
||||||
|
<p>This means that sysprof believes a function was called from somewhere in
|
||||||
|
the program's heap (where <code>malloc</code> allocates memory) rather than
|
||||||
|
the code section (where executable code normally lives.) There are several
|
||||||
|
possible explanations.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<title>JIT (Just in Time) compilers</title>
|
||||||
|
|
||||||
|
<p>Languages like Java can generate executable code while a program is
|
||||||
|
running and store it in the heap. Sysprof is accurately reporting the
|
||||||
|
situation in this case.</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<title>Optimizing compilers</title>
|
||||||
|
|
||||||
|
<p>C and C++ compilers can optimize away information needed to determine a
|
||||||
|
function's caller, so it is mistaken for [heap]. You can still tell how
|
||||||
|
often each function is called by the program, but not always from
|
||||||
|
where.</p>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<p>For gcc, the flag <code>-fno-omit-frame-pointer</code> will prevent
|
||||||
|
this optimization. The flag is not always needed, for example on x86_64
|
||||||
|
machines it is only needed with -O3 optimization.</p>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<p>To get the most detailed and accurate call tree from un-optimized
|
||||||
|
code, use these flags: <code>-ggdb -fno-omit-frame-pointer -O0</code></p>
|
||||||
|
</note>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
</page>
|
||||||
@ -15,4 +15,8 @@
|
|||||||
<title>Profiling</title>
|
<title>Profiling</title>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section id="faq">
|
||||||
|
<title>Frequently Asked Questions</title>
|
||||||
|
</section>
|
||||||
|
|
||||||
</page>
|
</page>
|
||||||
|
|||||||
@ -10,6 +10,7 @@ HELP_FILES = \
|
|||||||
index.page \
|
index.page \
|
||||||
introduction.page \
|
introduction.page \
|
||||||
profiling.page \
|
profiling.page \
|
||||||
|
faq.page \
|
||||||
legal.xml
|
legal.xml
|
||||||
|
|
||||||
# Translated languages
|
# Translated languages
|
||||||
|
|||||||
Reference in New Issue
Block a user