Client-Side Web Application Memory Management
Nieminen, Riku (2016)
Nieminen, Riku
2016
Tietotekniikan koulutusohjelma
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2016-01-13
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201512281859
https://urn.fi/URN:NBN:fi:tty-201512281859
Tiivistelmä
Today web browsers are used more and more as application runtime environment in addition to their use and origins as document viewers. At the same time web application’s architecture is undergoing changes. For instance functionality is being moved from the backend into the client, following the so-called Thick client architecture.
Currently it is quite easy to create client side web applications that do not manage their memory allocations. There has not been large focus in client side application’s memory usage for various reasons. However, currently client side web applications are widely being built and some of these applications are expected to be run for extended periods. Longevity of the application requires application’s succesful memory management. From the performance point of view it is also beneficial that the application manages its memory succesfully. The client-side behaviour of the application is developed with JavaScript, which has automatically managed memory allocations.
However, like all abstractions, automatically managed memory is a leaky abstraction to an undecidable problem.
In this thesis we aim at finding out what it takes to create client side applications that succesfully manage their memory allocations. We will take a look at the tools available for investigating memory issues during application development. We also developed a memory diagnostics module, in order to be able to diagnose application instance’s memory usage during its use.
The diagnostics module developed during this thesis was used succesfully to monitor application’s memory usage over time. With the use of the data provided by the diagnostics module, we were able to identify memory issues from our demo application.
However, currently the Web platform does not enable the creation of cross-browser standard relying solution for diagnosing web application’s memory usage.
Currently it is quite easy to create client side web applications that do not manage their memory allocations. There has not been large focus in client side application’s memory usage for various reasons. However, currently client side web applications are widely being built and some of these applications are expected to be run for extended periods. Longevity of the application requires application’s succesful memory management. From the performance point of view it is also beneficial that the application manages its memory succesfully. The client-side behaviour of the application is developed with JavaScript, which has automatically managed memory allocations.
However, like all abstractions, automatically managed memory is a leaky abstraction to an undecidable problem.
In this thesis we aim at finding out what it takes to create client side applications that succesfully manage their memory allocations. We will take a look at the tools available for investigating memory issues during application development. We also developed a memory diagnostics module, in order to be able to diagnose application instance’s memory usage during its use.
The diagnostics module developed during this thesis was used succesfully to monitor application’s memory usage over time. With the use of the data provided by the diagnostics module, we were able to identify memory issues from our demo application.
However, currently the Web platform does not enable the creation of cross-browser standard relying solution for diagnosing web application’s memory usage.