Modern consumer devices must execute multimedia applications that exhibit high resource utilization. In order to efficiently execute these applications, the dynamic memory subsystem needs to be optimized. This complex task can be tackled in two complementary ways: optimizing the application source code or designing custom dynamic memory management mechanisms. Currently, the first approach has been well established, and several automatic methodologies have been proposed. Regarding the second approach, software engineers often write custom dynamic memory managers from scratch, which is a difficult and error-prone work. This paper presents a novel way to automatically generate custom dynamic memory managers optimizing both performance and memory usage of the target application. The design space is pruned using grammatical evolution converging to the best dynamic memory manager implementation for the target application. Our methodology achieves important improvements (62.55\% and 30.62\% better on average in performance and memory usage, respectively) when its results are compared to five different general-purpose dynamic memory managers.
翻译:现代消费类设备必须执行资源占用率高的多媒体应用。为了高效执行这些应用,需要优化动态内存子系统。这一复杂任务可通过两种互补方式解决:优化应用程序源代码,或设计定制化动态内存管理机制。目前,第一种方法已较为成熟,多种自动化方法被提出。针对第二种方法,软件工程师通常需从零编写定制化动态内存管理器,这是一项困难且易出错的工作。本文提出了一种自动生成定制化动态内存管理器的新方法,可优化目标应用的性能与内存使用。该方法通过语法进化缩小设计空间,收敛于目标应用的最佳动态内存管理器实现。与五种不同通用动态内存管理器的对比结果表明,本方法在性能和内存占用上分别实现了平均62.55%和30.62%的显著提升。