thesis: Add performance table
This commit is contained in:
@@ -11,6 +11,7 @@ Files, Shared Memory, Semaphores; Related Processes and Inter-Process Communicat
|
|||||||
Table~\ref{tab:functions} lists all functions presented in the course and their implementation status in \texttt{intercept.so}.
|
Table~\ref{tab:functions} lists all functions presented in the course and their implementation status in \texttt{intercept.so}.
|
||||||
As one may see, simple file stream functions are not currently implemented in \texttt{intercept.so}.
|
As one may see, simple file stream functions are not currently implemented in \texttt{intercept.so}.
|
||||||
This is because of time restrictions on this work and the fact, that simple file operations may be tested easily in the conventional way of checking the resulting output.
|
This is because of time restrictions on this work and the fact, that simple file operations may be tested easily in the conventional way of checking the resulting output.
|
||||||
|
Note, that the future implementation of single functions is not very complex.
|
||||||
All other functions have at least interception and mocking (returning, failing) implemented.
|
All other functions have at least interception and mocking (returning, failing) implemented.
|
||||||
For some functions the modification of function arguments has been implemented.
|
For some functions the modification of function arguments has been implemented.
|
||||||
|
|
||||||
@@ -67,13 +68,68 @@ For some functions the modification of function arguments has been implemented.
|
|||||||
|
|
||||||
\section{Performance}\label{sec:performance}
|
\section{Performance}\label{sec:performance}
|
||||||
|
|
||||||
Lorem Ipsum.
|
Although high performance was not a primary goal of this work, the resulting performance degradation by intercepting and manipulation should not be too excessive.
|
||||||
|
The following two subsections test the performance degradation of \texttt{intercept.so} compared to running a program without any intercepting or hooking.
|
||||||
|
|
||||||
|
|
||||||
\subsection{Performance when Intercepting}\label{subsec:performance-intercepting}
|
\subsection{Performance when Intercepting}\label{subsec:performance-intercepting}
|
||||||
|
|
||||||
Lorem Ipsum.
|
Lorem Ipsum.
|
||||||
|
|
||||||
|
\begin{figure}
|
||||||
|
\centering
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\begin{axis}[
|
||||||
|
xmin=0, xmax=5000,
|
||||||
|
ymin=0, ymax=150,
|
||||||
|
scaled y ticks=false,
|
||||||
|
ymajorgrids=true,
|
||||||
|
grid style=dashed,
|
||||||
|
legend pos=north west,
|
||||||
|
legend cell align={left},
|
||||||
|
width=\textwidth,
|
||||||
|
xlabel=Iterations,
|
||||||
|
ylabel=Execution Time,
|
||||||
|
x unit=\#,
|
||||||
|
y unit=\si{\milli\second},
|
||||||
|
]
|
||||||
|
|
||||||
|
\addplot[color=blue] table [x=Cycles, y expr=\thisrow{Baseline Avg}/1000000, col sep=semicolon] {src/performance/stat.csv};
|
||||||
|
\addlegendentry{Baseline}
|
||||||
|
\addplot[name path=a_top,color=blue!50,forget plot] table [x=Cycles, y expr=(\thisrow{Baseline Avg} + \thisrow{Baseline SD}) / 1000000, col sep=semicolon] {src/performance/stat.csv};
|
||||||
|
\addplot[name path=a_down,color=blue!50,forget plot] table [x=Cycles, y expr=(\thisrow{Baseline Avg} - \thisrow{Baseline SD}) / 1000000, col sep=semicolon] {src/performance/stat.csv};
|
||||||
|
\addplot[blue!20,fill opacity=0.2] fill between[of=a_top and a_down];
|
||||||
|
\addlegendentry{Baseline ±SD}
|
||||||
|
|
||||||
|
\addplot[color=green] table [x=Cycles, y expr=\thisrow{Intercept Avg}/1000000, col sep=semicolon] {src/performance/stat.csv};
|
||||||
|
\addlegendentry{Intercepting}
|
||||||
|
\addplot[name path=b_top,color=green!50,forget plot] table [x=Cycles, y expr=(\thisrow{Intercept Avg} + \thisrow{Intercept SD}) / 1000000, col sep=semicolon] {src/performance/stat.csv};
|
||||||
|
\addplot[name path=b_down,color=green!50,forget plot] table [x=Cycles, y expr=(\thisrow{Intercept Avg} - \thisrow{Intercept SD}) / 1000000, col sep=semicolon] {src/performance/stat.csv};
|
||||||
|
\addplot[green!20,fill opacity=0.2] fill between[of=b_top and b_down];
|
||||||
|
\addlegendentry{Intercepting ±SD}
|
||||||
|
|
||||||
|
\addplot[color=teal] table [x=Cycles, y expr=(\thisrow{Intercept Avg} - 10000000) / 1000000, col sep=semicolon] {src/performance/stat.csv};
|
||||||
|
\addlegendentry{Intercepting -- 10 ms}
|
||||||
|
|
||||||
|
\addplot[color=red] table [x=Cycles, y expr=\thisrow{Stderr Avg}/1000000, col sep=semicolon] {src/performance/stat.csv};
|
||||||
|
\addlegendentry{Logging to stderr}
|
||||||
|
\addplot[name path=c_top,color=red!50,forget plot] table [x=Cycles, y expr=(\thisrow{Stderr Avg} + \thisrow{Stderr SD}) / 1000000, col sep=semicolon] {src/performance/stat.csv};
|
||||||
|
\addplot[name path=c_down,color=red!50,forget plot] table [x=Cycles, y expr=(\thisrow{Stderr Avg} - \thisrow{Stderr SD}) / 1000000, col sep=semicolon] {src/performance/stat.csv};
|
||||||
|
\addplot[red!20,fill opacity=0.2] fill between[of=c_top and c_down];
|
||||||
|
\addlegendentry{Logging to stderr ±SD}
|
||||||
|
|
||||||
|
\addplot[color=orange] table [x=Cycles, y expr=\thisrow{File Avg}/1000000, col sep=semicolon] {src/performance/stat.csv};
|
||||||
|
\addlegendentry{Logging to File}
|
||||||
|
\addplot[name path=d_top,color=orange!50,forget plot] table [x=Cycles, y expr=(\thisrow{File Avg} + \thisrow{File SD}) / 1000000, col sep=semicolon] {src/performance/stat.csv};
|
||||||
|
\addplot[name path=d_down,color=orange!50,forget plot] table [x=Cycles, y expr=(\thisrow{File Avg} - \thisrow{File SD}) / 1000000, col sep=semicolon] {src/performance/stat.csv};
|
||||||
|
\addplot[orange!20,fill opacity=0.2] fill between[of=d_top and d_down];
|
||||||
|
\addlegendentry{Logging to File ±SD}
|
||||||
|
\end{axis}
|
||||||
|
\end{tikzpicture}
|
||||||
|
\caption{Execution times of a simple program using \texttt{intercept.so} with different output modes.}
|
||||||
|
\label{fig:performance}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
\subsection{Performance when Manipulating}\label{subsec:performance-manipulating}
|
\subsection{Performance when Manipulating}\label{subsec:performance-manipulating}
|
||||||
|
|
||||||
|
|||||||
@@ -43,8 +43,14 @@
|
|||||||
\usepackage{pgf-umlsd}
|
\usepackage{pgf-umlsd}
|
||||||
\usepackage{textcomp}
|
\usepackage{textcomp}
|
||||||
\usepackage{tikz}
|
\usepackage{tikz}
|
||||||
|
\usepackage{csvsimple}
|
||||||
\usetikzlibrary{shapes}
|
\usetikzlibrary{shapes}
|
||||||
|
\usetikzlibrary{intersections}
|
||||||
|
\usepackage{pgfplots}
|
||||||
|
\usepgfplotslibrary{fillbetween}
|
||||||
|
\usepgfplotslibrary{units}
|
||||||
\usepackage[flushleft]{threeparttable}
|
\usepackage[flushleft]{threeparttable}
|
||||||
|
\usepackage{siunitx}
|
||||||
|
|
||||||
\newcommand{\newthreadShift}[4][gray!30]{
|
\newcommand{\newthreadShift}[4][gray!30]{
|
||||||
\newinst[#4]{#2}{#3}
|
\newinst[#4]{#2}{#3}
|
||||||
|
|||||||
Reference in New Issue
Block a user