| <?xml version="1.0"?> <!-- -*- sgml -*- --> |
| <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" |
| "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> |
| |
| <chapter id="lk-manual" xreflabel="Lackey"> |
| |
| <title>Lackey: a very simple profiler</title> |
| <para>Lackey is a simple Valgrind tool that does some basic |
| program measurement. It adds quite a lot of simple |
| instrumentation to the program's code. It is primarily intended |
| to be of use as an example tool.</para> |
| |
| <para>It measures and reports:</para> |
| |
| <orderedlist> |
| |
| <listitem> |
| <para>The number of calls to |
| <computeroutput>_dl_runtime_resolve()</computeroutput>, the |
| function in glibc's dynamic linker that resolves function |
| references to shared objects.</para> |
| <para>You can change the name of the function with command line |
| option <computeroutput>--fnname=<name></computeroutput>.</para> |
| </listitem> |
| |
| <listitem> |
| <para>The number of conditional branches encountered and the |
| number and proportion of those taken.</para> |
| </listitem> |
| |
| <listitem> |
| |
| <para>Statistics about the amount of work done during the execution |
| of the client program:</para> |
| |
| <orderedlist> |
| |
| <listitem> |
| <para>The number of basic blocks entered and completed by the |
| program. Note that due to optimisations done by the JIT, this |
| is not really an accurate value.</para> |
| </listitem> |
| |
| <listitem> |
| <para>The number of guest (x86, amd64, ppc, etc.) instructions and IR |
| statements executed. IR is Valgrind's RISC-like intermediate |
| representation via which all instrumentation is done. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <para>Ratios between some of these counts.</para> |
| </listitem> |
| |
| <listitem> |
| <para>When command line option |
| <computeroutput>--detailed-counts=yes</computeroutput> is |
| specified, a table is printed with counts of loads, stores and ALU |
| operations for various types of operands.</para> |
| |
| <para>The types are identified by their IR name ("I1" ... "I128", |
| "F32", "F64", and "V128").</para> |
| </listitem> |
| |
| </orderedlist> |
| |
| </listitem> |
| |
| <listitem> |
| <para>The exit code of the client program.</para> |
| </listitem> |
| |
| </orderedlist> |
| |
| <para>Note that Lackey runs quite slowly, especially when |
| <computeroutput>--detailed-counts=yes</computeroutput> is specified. |
| It could be made to run a lot faster by doing a slightly more |
| sophisticated job of the instrumentation, but that would undermine |
| its role as a simple example tool. Hence we have chosen not to do |
| so.</para> |
| |
| </chapter> |