mt-polygon-simplification/thesis/main.tex
2019-08-25 18:21:33 +02:00

85 lines
3.3 KiB
TeX

\documentclass[12pt,a4paper]{extarticle}
\usepackage[utf8]{inputenc}
\usepackage[onehalfspacing]{setspace}
\usepackage{geometry}
\geometry{
a4paper,
% top=25mm,left=30mm,right=40mm,bottom=20mm,
margin=25mm,
headheight=15pt,
includehead,
marginparwidth=2cm
}
% for bibliography
\usepackage[style=authoryear]{biblatex}
\addbibresource{bibliography/bibliography.bib}
\addbibresource{bibliography/algorithms.bib}
\addbibresource{bibliography/specifications.bib}
\addbibresource{bibliography/wasm.bib}
\usepackage{graphicx} % for figures
\usepackage{todonotes} % for todo notes
\usepackage{url} % for filepaths and urls
\usepackage{hyperref} % for hyperlinks
\usepackage{float}
\usepackage[section]{placeins} % for using \FloatBarrier in results
% configure headers
\usepackage{fancyhdr} % for headers
\usepackage{ragged2e} % for aligning in page headers
% \lhead{\parbox[t]{0.5\textwidth}{\RaggedRight\rightmark\strut}}
% \rhead{\parbox[t]{0.5\textwidth}{\RaggedLeft\leftmark\strut}}
% \setlength{\headheight}{5\baselineskip}
\pagestyle{fancy}
%\fancyhead[L]{\leftmark}
%\fancyhead[R]{\small \rightmark }
% configure listings
\usepackage{listings} % for code highlighting
\usepackage{color} % for defining colors in jslistings
\input{custom-listing.tex}
% \setlength\parindent{0pt} % disable indentation for paragraphs
% Start sections on new pages
\let\stdsection\section
\renewcommand\section{\clearpage\newpage\stdsection}
\title{Performance comparison of simplification algorithms for polygons in the context of web applications}
\author{Alfred Melch}
\begin{document}
\pagenumbering{gobble} % suppress page numbering
\input{titlepage.tex}
\section*{Abstract}
In this thesis the performance of polyline simplification in web browsers is evaluated. Based on the JavaScript library Simplify.js a WebAssembly solution is built to increase the performance. The solutions implement the Douglas-Peucker polyline simplification algorithm with optional radial distance preprocessing. The format for polylines that Simplify.js expects differs from the representation used in major geodata formats. This discrepancy is obvious in another JavaScript library, Turf.js, where it is overcome by format transformations on each call. A slight variant of Simplify.js is proposed in this thesis that can operate directly on the format used in GeoJSON and TopoJSON. The three approaches, Simplify.js, Simplify.js variant and Simplify.wasm are compared across different browsers by creating a web page, that gathers various benchmarking metrics. It is concluded that WebAssembly performance alone supersedes JavaScript performance. A drop-in replacement that includes memory management however bears overhead that can outweigh the performance gain. To fully utilize WebAssembly performance more effort regarding memory management is brought to web development. It is shown that the method used by Turf.js is unfavorable in most cases. Merely one browser shows a performance gain under special circumstances. In the other browsers the use of the Simplify.js variant is preferable.
\newpage
\tableofcontents
\newpage
\listoffigures
\newpage
\listoftables
\newpage
\lstlistoflistings
\newpage
\setcounter{page}{1}
\pagenumbering{arabic}
\input{chapters.tex}
\clearpage
\pagenumbering{gobble}
\printbibliography
\newpage
% \input{gliederung.tex}
\end{document}