The real-time behavior of dynamic memory management in C++
Kelvin Don Nilsen, Hong Gao · Proceedings - Real-Time Technology and Applications Symposium · 2002
Dynamic memory management is an important aspect of modern software engineering techniques based on object-oriented methodologies. Additionally, dynamic management of memory serves important roles in improving the flexibility and functionality of large software systems. However, developers of current real-time systems avoid the use of dynamic memory because they fear that the worst-case time and space requirements of typical dynamic memory managers are insufficiently bounded. The degree to which these concerns are valid is quantified by detailed measurements of several real-world workloads. A special hardware-assisted real-time garbage collection system has been designed to facilitate reliable use of dynamic memory in hard real-time systems. By analyzing the dynamic memory use of application software, the real-time developer can prove compliance with time and space constraints. Analysis techniques are presented and the real-time performance of the hardware-assisted garbage collection system is compared to that of the traditional allocators.