Web Browser as a Computation Container

No Thumbnail Available

Date

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

With new developments in JavaScript engines and the introduction of WebAssembly, web applications can execute CPU-intensive tasks at 0.9 the speed of C/C++. Dozens of natively implemented APIs such as WebGL and Audio API are now exposed to JavaScript through the browser. With the help of these APIs, we see more and more web-based applications and games. As browsers are the most ubiquitous software, it is now possible to build universal applications that run on every machine that has a web browser installed on it. In this dissertation, we investigated the possibility of using web browsers as computation containers that make applications universal. As progressive web applications gained tremendous popularity in recent years, their performance still worries developers. Therefore, in the first part of this dissertation, we concentrated on the performance aspect of web applications. We discovered that the computation in the browser has improved to reach 0.7 to 0.9 the speed of native code. We conducted our performance evaluation using real-world applications and benchmarking. We evaluated the performance of WebAssembly on different platforms such as Windows 10, Ubuntu 18.04, macOS Catalina, iOS 13.6, and Android iv 10. We ran WebAssembly in Google Chrome and Firefox on all these operating systems and compared its performance to the performance of the native code. In the second part of this dissertation, we implemented a design to build web applications that take advantage of the new performance capabilities in the browser. This design aims to push some of the computation to the client-side. We validated that powerful client machines can be used to improve the overall performance of web applications. We implemented this design in a form of a lightweight benchmark that runs upon page startup. We called it a decider since it decides either to run computation at the client-side or at the server-side. We also implemented this design and showed that it improved the overall performance of web applications in our experiment. We learned that this decider was able to improve the performance of applications that require moving files to the cloud for computation. We also evaluated the effect of this design in reducing the cost of back-end operation. In addition, we evaluated how this design effect RTA ( Real-time Applications). The third part of this dissertation presents a novel design to get the most out of web technologies in the browser. It aims to bring freedom of the web to desktop applications. Developers will never need to use proprietary programming languages or frameworks to implement their ideas. Even with existing cross-platform frameworks, there is still a learning curve that developers need to go through. However, in this design, the development of desktop applications is done entirely using standardized web technologies. We called this design CPWA ( Cross-platform Web Applications). In CPWA, the memory footprint of the same application was about 42% less than ElectronJS version and 51% less NW.js version.

Description

Keywords

Citation

Endorsement

Review

Supplemented By

Referenced By

Copyright owned by the Saudi Digital Library (SDL) © 2025