Skip to content

Commit

Permalink
Add performance graph and small discussion
Browse files Browse the repository at this point in the history
  • Loading branch information
robgolding committed Apr 29, 2011
1 parent 7feb9c1 commit 45fe3ba
Show file tree
Hide file tree
Showing 4 changed files with 277 additions and 3 deletions.
224 changes: 224 additions & 0 deletions dissertation/images/performance.eps
Original file line number Diff line number Diff line change
@@ -0,0 +1,224 @@
%!PS-Adobe-3.0
%%DocumentNeededResources: font Helvetica
%%+ font Helvetica-Bold
%%+ font Helvetica-Oblique
%%+ font Helvetica-BoldOblique
%%+ font Symbol
%%DocumentMedia: a4 595 841 0 () ()
%%Title: R Graphics Output
%%Creator: R Software
%%Pages: (atend)
%%Orientation: Portrait
%%BoundingBox: 18 18 577 824
%%EndComments
%%BeginProlog
/bp { gs gs } def
% begin .ps.prolog
/gs { gsave } def
/gr { grestore } def
/ep { showpage gr gr } def
/m { moveto } def
/l { rlineto } def
/np { newpath } def
/cp { closepath } def
/f { fill } def
/o { stroke } def
/c { newpath 0 360 arc } def
/r { 4 2 roll moveto 1 copy 3 -1 roll exch 0 exch rlineto 0 rlineto -1 mul 0 exch rlineto closepath } def
/p1 { stroke } def
/p2 { gsave bg fill grestore newpath } def
/p3 { gsave bg fill grestore stroke } def
/p6 { gsave bg eofill grestore newpath } def
/p7 { gsave bg eofill grestore stroke } def
/t { 5 -2 roll moveto gsave rotate
1 index stringwidth pop
mul neg 0 rmoveto show grestore } def
/ta { 4 -2 roll moveto gsave rotate show } def
/tb { 2 -1 roll 0 rmoveto show } def
/cl { grestore gsave newpath 3 index 3 index moveto 1 index
4 -1 roll lineto exch 1 index lineto lineto
closepath clip newpath } def
/rgb { setrgbcolor } def
/s { scalefont setfont } def
% end .ps.prolog
%%IncludeResource: font Helvetica
/Helvetica findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding ISOLatin1Encoding def
currentdict
end
/Font1 exch definefont pop
%%IncludeResource: font Helvetica-Bold
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding ISOLatin1Encoding def
currentdict
end
/Font2 exch definefont pop
%%IncludeResource: font Helvetica-Oblique
/Helvetica-Oblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding ISOLatin1Encoding def
currentdict
end
/Font3 exch definefont pop
%%IncludeResource: font Helvetica-BoldOblique
/Helvetica-BoldOblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding ISOLatin1Encoding def
currentdict
end
/Font4 exch definefont pop
%%IncludeResource: font Symbol
/Symbol findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
currentdict
end
/Font5 exch definefont pop
%%EndProlog
%%Page: 1 1
bp
18.00 18.00 577.28 823.89 cl
/bg { 0.6627 setgray } def
0 setgray
0.75 setlinewidth
[] 0 setdash
1 setlinecap
1 setlinejoin
10.00 setmiterlimit
94.45 98.11 15.01 66.17 r p3
/bg { 1 setgray } def
109.45 98.11 15.01 6.11 r p3
/bg { 0.6627 setgray } def
139.47 98.11 15.01 130.29 r p3
/bg { 1 setgray } def
154.47 98.11 15.01 11.20 r p3
/bg { 0.6627 setgray } def
184.48 98.11 15.01 198.50 r p3
/bg { 1 setgray } def
199.49 98.11 15.01 17.30 r p3
/bg { 0.6627 setgray } def
229.50 98.11 15.01 266.70 r p3
/bg { 1 setgray } def
244.51 98.11 15.01 23.41 r p3
/bg { 0.6627 setgray } def
274.52 98.11 15.01 335.92 r p3
/bg { 1 setgray } def
289.53 98.11 15.01 30.54 r p3
/bg { 0.6627 setgray } def
319.54 98.11 15.01 398.01 r p3
/bg { 1 setgray } def
334.55 98.11 15.01 35.63 r p3
/bg { 0.6627 setgray } def
364.56 98.11 15.01 468.25 r p3
/bg { 1 setgray } def
379.57 98.11 15.01 42.75 r p3
/bg { 0.6627 setgray } def
409.58 98.11 15.01 538.48 r p3
/bg { 1 setgray } def
424.58 98.11 15.01 50.90 r p3
/bg { 0.6627 setgray } def
454.60 98.11 15.01 602.61 r p3
/bg { 1 setgray } def
469.60 98.11 15.01 55.99 r p3
/bg { 0.6627 setgray } def
499.62 98.11 15.01 666.74 r p3
/bg { 1 setgray } def
514.62 98.11 15.01 62.09 r p3
18.00 18.00 577.28 823.89 cl
/Font1 findfont 11 s
0 setgray
109.45 65.52 (1000) .5 0 t
154.47 65.52 (2000) .5 0 t
199.49 65.52 (3000) .5 0 t
244.51 65.52 (4000) .5 0 t
289.53 65.52 (5000) .5 0 t
334.55 65.52 (6000) .5 0 t
379.57 65.52 (7000) .5 0 t
424.58 65.52 (8000) .5 0 t
469.60 65.52 (9000) .5 0 t
514.62 65.52 (10000) .5 0 t
18.00 18.00 577.28 823.89 cl
/Font2 findfont 14 s
0 setgray
110.16 789.34 (Bac) 0 ta
-0.280 (kup & Initial Star) tb
0.280 (tup Times f) tb
-0.280 (or Diff) tb
-0.140 (ering Number) tb
-0.210 (s of Files) tb gr
/Font1 findfont 12 s
312.04 36.72 (Number of files) .5 0 t
30.96 389.80 (Time tak) 90 ta
-0.240 (en \(s\)) tb gr
18.00 18.00 577.28 823.89 cl
0 setgray
0.75 setlinewidth
[] 0 setdash
1 setlinecap
1 setlinejoin
10.00 setmiterlimit
np
77.04 98.11 m
0 610.75 l
o
np
77.04 98.11 m
-7.20 0 l
o
np
77.04 199.90 m
-7.20 0 l
o
np
77.04 301.69 m
-7.20 0 l
o
np
77.04 403.49 m
-7.20 0 l
o
np
77.04 505.28 m
-7.20 0 l
o
np
77.04 607.07 m
-7.20 0 l
o
np
77.04 708.86 m
-7.20 0 l
o
/Font1 findfont 12 s
59.76 98.11 (0) .5 90 t
59.76 199.90 (100) .5 90 t
59.76 301.69 (200) .5 90 t
59.76 403.49 (300) .5 90 t
59.76 505.28 (400) .5 90 t
59.76 607.07 (500) .5 90 t
59.76 708.86 (600) .5 90 t
77.04 91.44 547.04 764.85 cl
0 setgray
0.75 setlinewidth
[] 0 setdash
1 setlinecap
1 setlinejoin
10.00 setmiterlimit
100.54 731.18 97.68 -43.20 r p1
/bg { 0.6627 setgray } def
111.34 720.38 8.64 -7.20 r p3
/bg { 1 setgray } def
111.34 705.98 8.64 -7.20 r p3
/Font1 findfont 12 s
130.78 712.47 (initial) 0 0 t
130.78 698.07 (subsequent) 0 0 t
ep
%%Trailer
%%Pages: 1
%%EOF
11 changes: 11 additions & 0 deletions dissertation/performance-data
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
files initial subsequent
1000 65 6
2000 128 11
3000 195 17
4000 262 23
5000 330 30
6000 391 35
7000 460 42
8000 529 50
9000 592 55
10000 655 61
10 changes: 10 additions & 0 deletions dissertation/plot-performance-data.r
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
data<-read.table("performance-data", header=T, sep="\t")
files<-data$files
initial<-data$initial
subsequent<-data$subsequent
d<-rbind(initial, subsequent)
colors<-c("darkgray", "white")
postscript(file="images/performance.eps", onefile=T, horizontal=FALSE)
barplot(d, main="Backup & Initial Startup Times for Differing Numbers of Files", ylab="Time taken (s)", xlab="Number of files", beside=TRUE, names.arg=files, cex.names=0.9, col=colors)
legend("topleft", inset=0.05, rownames(d), fill=colors)
dev.off()
35 changes: 32 additions & 3 deletions dissertation/testing.tex
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ \section{System Testing}

\section{Performance Testing}

\begin{table}[H]
\begin{table}
\centering
\begin{tabular}{ l l l }
Number of Files & Initial Backup Time & Subsequent Startup Time
Expand All @@ -284,13 +284,42 @@ \section{Performance Testing}
\\ \\
9,000 & 9m 52s & 55s
\\ \\
10,000 & 10m 05s & 1m 01s
10,000 & 10m 55s & 1m 01s
\\ \bottomrule
\end{tabular}
\caption{Time taken to backup differing directory tree sizes}
\caption{Time taken for initial backup and subsequent indexing of
directory trees containing different numbers of random 1KB files}
\label{tab:performance}
\end{table}

Requirement \textsc{NFuncReq1} states that the backup system should be able to
backup large directory structures containing 10,000 items. To test the
performance of the system against this requirement, a differing numbers of
randomly-generated files are placed in a directory structure and the system is
started.

The time taken to initially backup the files is recorded, as is the time taken
for subsequent startup procedures to complete. These results are detailed in
table \ref{tab:performance}, and graphed in figure \ref{fig:performance-graph}.

\begin{figure}
\begin{center}
\includegraphics[width=\textwidth]{performance}
\end{center}
\caption{Graph showing system performance with differing numbers of files}
\label{fig:performance-graph}
\end{figure}

Files of a small and consistent size (1KB) were intentionally used so as to
test the performance of the indexing and initial backup code, not the file
transfer speed itself, as this is dependant on network bandwidth.

Figure \ref{fig:performance-graph} shows clearly that, when acting upon files
of equal size, the performance of the system is linear (i.e. $O(n)$) in both
the initial backup and subsequent startup phases. This is a very satisfactory
result, showing that a directory tree containing 10,000 files can easily be
backed up in under 11 minutes, and subsequent startup takes only 1 minute.

\section{Evaluation}

The software produced in this project has met every requirement set out in the
Expand Down

0 comments on commit 45fe3ba

Please sign in to comment.