Add time benchmarking
This commit is contained in:
parent
88ae6dbb0e
commit
a2d468b26a
1 changed files with 65 additions and 2 deletions
|
@ -796,7 +796,7 @@ integrate the sampled data in the end.
|
||||||
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
\subsection{Benchmarking with \prog{perf}}
|
\subsection{Benchmarking with \prog{perf}}\label{ssec:bench_perf}
|
||||||
|
|
||||||
In the context of this internship, the main advantage of \prog{perf} is that it
|
In the context of this internship, the main advantage of \prog{perf} is that it
|
||||||
does a lot of stack unwinding. It also meets all the requirements from
|
does a lot of stack unwinding. It also meets all the requirements from
|
||||||
|
@ -863,9 +863,63 @@ CSmith code is notoriously hard to understand and edit.
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
\section{Results}
|
\section{Results}
|
||||||
|
|
||||||
|
\subsection{Hardware used}~\label{ssec:bench_hw}
|
||||||
|
|
||||||
|
All the measures in this report were made on a computer with an Intel Xeon
|
||||||
|
E3-1505M v6 CPU, with a clock frequency of $3.00$\,GHz and 8 cores. The
|
||||||
|
computer has 32\,GB of RAM, and care was taken never to fill it and start
|
||||||
|
swapping.
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
\subsection{Measured time performance}
|
\subsection{Measured time performance}
|
||||||
\todo{}
|
|
||||||
|
The benchmarking, as described in Section~\ref{ssec:bench_perf}, of \ehelfs{}
|
||||||
|
against the vanilla \prog{libunwind} (using the same methodology, only linking
|
||||||
|
\prog{perf} against the vanilla \prog{libunwind}), gives the results in
|
||||||
|
Table~\ref{table:bench_time}.
|
||||||
|
|
||||||
|
\begin{table}[h]
|
||||||
|
\centering
|
||||||
|
\begin{tabular}{l r r r r r}
|
||||||
|
\toprule
|
||||||
|
\thead{Unwinding method} & \thead{Frames \\ unwound}
|
||||||
|
& \thead{Total time \\ unwinding ($\mu s$)}
|
||||||
|
& \thead{Average time \\ per frame ($ns$)}
|
||||||
|
& \thead{Unwinding \\ errors}
|
||||||
|
& \thead{Time ratio} \\
|
||||||
|
\midrule
|
||||||
|
\ehelfs{}
|
||||||
|
& 23506 % Frames unwound
|
||||||
|
& 14837 % Total time
|
||||||
|
& 631 % Avg time
|
||||||
|
& 1099 % # Errors
|
||||||
|
& 1
|
||||||
|
\\
|
||||||
|
\prog{libunwind}, cached
|
||||||
|
& 27058 % Frames unwound
|
||||||
|
& 441601 % Total time
|
||||||
|
& 16320 % Avg time
|
||||||
|
& 885 % # Errors
|
||||||
|
& 25.9
|
||||||
|
\\
|
||||||
|
\prog{libunwind}, uncached
|
||||||
|
& 27058 % Frames unwound
|
||||||
|
& 671292 % Total time
|
||||||
|
& 24809 % Avg time
|
||||||
|
& 885 % # Errors
|
||||||
|
& 39.3
|
||||||
|
\\
|
||||||
|
\bottomrule
|
||||||
|
\end{tabular}
|
||||||
|
|
||||||
|
\caption{Time benchmarking on hackbench}\label{table:bench_time}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
It is also worth noting that on the machine described in
|
||||||
|
Section~\ref{ssec:bench_hw}, the compilation of the \ehelfs{} at a level of
|
||||||
|
\lstc{-O2} needed to run \prog{hackbench}, that is, \prog{hackbench},
|
||||||
|
\prog{libc}, \prog{ld}, and \prog{libpthread} takes an overall time of $25.28$
|
||||||
|
seconds (using only a single core).
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
\subsection{Measured compactness}\label{ssec:results_size}
|
\subsection{Measured compactness}\label{ssec:results_size}
|
||||||
|
@ -882,6 +936,15 @@ CSmith code is notoriously hard to understand and edit.
|
||||||
%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
\printbibliography{}
|
\printbibliography{}
|
||||||
|
|
||||||
|
%% License notice %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
\hfill \begin{minipage}{0.7\textwidth}
|
||||||
|
\begin{flushright}
|
||||||
|
\itshape{} \small{}
|
||||||
|
Unless otherwise explicitly stated, any image or source code snippet
|
||||||
|
from the present document can be reused freely by anyone.
|
||||||
|
\end{flushright}
|
||||||
|
\end{minipage}
|
||||||
|
|
||||||
\end{document}
|
\end{document}
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
Loading…
Reference in a new issue