GIS Processing on the Web

University essay from Linköpings universitet/Institutionen för datavetenskap

Abstract: Today more and more advanced and demanding applications are finding their way to the web. These are applications like video editing, games, and mathematical calculations. Up until a few years ago, JavaScript was the only language present on the web. That was until Mozilla, Google, Microsoft, and Apple decided to develop WebAssembly. WebAssembly is a low-level language, similar to assembly, but running in the browser. WebAssembly was not created to replace JavaScript, but to be used alongside it and complement JavaScript’s weaknesses. WebAssembly is still a relatively new language (2017) and is in continuous development. This work is presented as a guideline, and to give a general direction of how WebAssembly is performing (in 2022) when operating on GIS data. When comparing the execution speed of WebAssembly running in different environments (NodeJS, Google Chrome, and Mozilla Firefox), NodeJS was the fastest. The second fastest was Mozilla Firefox, and the slowest was Google Chrome. However, when compared to the native implementation in C++, no environment came close to the developers’ promised 10% slowdown compared to the native code. The average slowdowns found in this study were: The benchmark with small input files ran 63% slower than native. The benchmark with medium input files ran 62% slower than native, and the benchmarks with large input files ran 68% slower than native. The results are comparable to the study [6], which found that the slowdown was around 45% when running WebAssembly on Mozilla Firefox and 55% on Google Chrome with a peak of 2.5 times slowdown compared to native. This study aimed to measure memory usage in the different environments for operations on GIS data. However, the methods used in this study to measure memory proved to be too unsophisticated when dealing with JIT and garbage collection. For future work, a more detailed "memory allocated over time" graph should probably be used to be able to measure the peaks of memory currently allocated to the process instead of looking at the difference in memory before and after.

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)