Detecting Memory Leaks in Long-Running Applications
Davydov, Vasily (2023)
Davydov, Vasily
2023
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2023120333774
https://urn.fi/URN:NBN:fi:amk-2023120333774
Tiivistelmä
Efficient memory management is critical in preserving the reliability and stability of evolving software systems. Mismanaged memory may lead to leaks and subsequent system failure due to memory exhaustion. To address this problem, it is essential to have a tool for memory leak monitoring. While the industry has an array of different memory leak detection programs, most of them work only with finite applications and do not produce real-time data. Due to this, the challenges persist when debugging long-running applications, necessitating the development of a mechanism capable of real-time memory leak detection.
The main objective of this project was to develop a memory leak detection framework able to produce real-time output, while monitoring a long-running application. The library is written in partnership with the telecommunication service provider Ericsson to introduce a lightweight and efficient approach for memory debugging in long-running systems.
Applying an iterative development methodology helped to achieve significant improvements in the performance of the library during its implementation, by employing several data structures and algorithms to find the most suitable solution. A test run in Ericsson’s development environment proved the library to be useful in several test scenarios. It also assisted with the ongoing maintenance issue related to an increase of memory in one of the applications.
In the end, the dynamic memory debugging framework proved its significance and potential by providing a possibility to report debugging information promptly, which is essential for systems with a long lifespan.
The main objective of this project was to develop a memory leak detection framework able to produce real-time output, while monitoring a long-running application. The library is written in partnership with the telecommunication service provider Ericsson to introduce a lightweight and efficient approach for memory debugging in long-running systems.
Applying an iterative development methodology helped to achieve significant improvements in the performance of the library during its implementation, by employing several data structures and algorithms to find the most suitable solution. A test run in Ericsson’s development environment proved the library to be useful in several test scenarios. It also assisted with the ongoing maintenance issue related to an increase of memory in one of the applications.
In the end, the dynamic memory debugging framework proved its significance and potential by providing a possibility to report debugging information promptly, which is essential for systems with a long lifespan.