mt-polygon-simplification/thesis/main.tex

84 lines
3.3 KiB
TeX
Raw Normal View History

2019-07-25 09:53:29 +02:00
\documentclass[12pt,a4paper]{extarticle}
2019-07-14 20:37:26 +02:00
\usepackage[utf8]{inputenc}
\usepackage[onehalfspacing]{setspace}
\usepackage{geometry}
\geometry{
a4paper,
2019-08-11 19:08:19 +02:00
margin=25mm,
2019-07-14 20:37:26 +02:00
headheight=15pt,
includehead,
marginparwidth=2cm
}
2019-08-16 14:33:31 +02:00
% for bibliography
\usepackage[style=authoryear]{biblatex}
\addbibresource{bibliography/bibliography.bib}
\addbibresource{bibliography/algorithms.bib}
\addbibresource{bibliography/specifications.bib}
\addbibresource{bibliography/wasm.bib}
2019-07-14 20:37:26 +02:00
\usepackage{graphicx} % for figures
\usepackage{todonotes} % for todo notes
2019-07-19 15:16:17 +02:00
\usepackage{url} % for filepaths and urls
\usepackage{hyperref} % for hyperlinks
2019-08-10 20:51:47 +02:00
\usepackage{float}
2019-08-15 20:46:02 +02:00
\usepackage[section]{placeins} % for using \FloatBarrier in results
2019-07-14 20:37:26 +02:00
% 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}
2019-08-11 19:08:19 +02:00
%\fancyhead[L]{\leftmark}
%\fancyhead[R]{\small \rightmark }
2019-07-14 20:37:26 +02:00
% configure listings
\usepackage{listings} % for code highlighting
\usepackage{color} % for defining colors in jslistings
\input{custom-listing.tex}
2019-07-28 12:03:15 +02:00
% \setlength\parindent{0pt} % disable indentation for paragraphs
% Start sections on new pages
\let\stdsection\section
2019-08-10 20:51:47 +02:00
\renewcommand\section{\clearpage\newpage\stdsection}
2019-07-14 20:37:26 +02:00
2019-07-25 09:53:29 +02:00
\title{Performance comparison of simplification algorithms for polygons in the context of web applications}
\author{Alfred Melch}
2019-07-14 20:37:26 +02:00
\begin{document}
\pagenumbering{gobble} % suppress page numbering
2019-07-25 09:53:29 +02:00
\input{titlepage.tex}
2019-07-14 20:37:26 +02:00
\section*{Abstract}
2019-08-22 16:07:41 +02:00
In this thesis the performance of polyline simplification in web browsers is observed. Based on the JavaScript library Simplify.js a WebAssembly solution is built to increase 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 paper 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.
2019-07-14 20:37:26 +02:00
\newpage
\tableofcontents
\newpage
\setcounter{page}{1}
\pagenumbering{arabic}
\input{chapters.tex}
2019-07-14 20:37:26 +02:00
2019-08-08 21:25:39 +02:00
\clearpage
\pagenumbering{gobble}
2019-07-28 12:03:15 +02:00
\listoffigures
\newpage
2019-08-10 11:13:17 +02:00
\listoftables
\newpage
2019-07-14 20:37:26 +02:00
\lstlistoflistings
\newpage
2019-08-16 14:33:31 +02:00
\printbibliography
\newpage
2019-07-14 20:37:26 +02:00
% \input{gliederung.tex}
\end{document}