diff --git a/report/report.tex b/report/report.tex index 9736b5d..51b5a4a 100644 --- a/report/report.tex +++ b/report/report.tex @@ -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 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} +\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} -\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} @@ -882,6 +936,15 @@ CSmith code is notoriously hard to understand and edit. %% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \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} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%