Detail a bit more about profilers
This commit is contained in:
parent
b685351dd2
commit
ee09bc2b4b
1 changed files with 6 additions and 5 deletions
|
@ -822,16 +822,17 @@ Listing~\ref{lst:ex1_dw}, etc.
|
||||||
\subsection{Presentation of \prog{perf}}
|
\subsection{Presentation of \prog{perf}}
|
||||||
|
|
||||||
\prog{Perf} is a \emph{profiler} that comes with the Linux ecosystem (actually,
|
\prog{Perf} is a \emph{profiler} that comes with the Linux ecosystem (actually,
|
||||||
\prog{perf} is developed within the Linux kernel source tree). A profiler is a
|
\prog{perf} is developed within the Linux kernel source tree). A profiler is an
|
||||||
program that analyzes the performance of programs by recording the time spent
|
important tool from the developer's toolbox that analyzes the performance of
|
||||||
in each function, including within nested calls.
|
programs by recording the time spent in each function, including within nested
|
||||||
|
calls. This analysis often enables programmers to optimize critical paths and
|
||||||
|
functions in their programs, while leaving unoptimized functions that are
|
||||||
|
seldom traversed.
|
||||||
|
|
||||||
For this purpose, the basic idea is to stop the traced program at regular
|
For this purpose, the basic idea is to stop the traced program at regular
|
||||||
intervals, unwind its stack, write down the current nested function calls, and
|
intervals, unwind its stack, write down the current nested function calls, and
|
||||||
integrate the sampled data in the end.
|
integrate the sampled data in the end.
|
||||||
|
|
||||||
\todo{Is it necessary to write more about \prog{perf} here?}
|
|
||||||
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
\subsection{Benchmarking with \prog{perf}}\label{ssec:bench_perf}
|
\subsection{Benchmarking with \prog{perf}}\label{ssec:bench_perf}
|
||||||
|
|
Loading…
Reference in a new issue