Modern mobile embedded systems are composed of a combination of software and hardware modules, capable of offering a variety of applications. They also communicate to other devices in a mostly wireless way. To ensure a good user experience, these devices require a long battery life. For this, they have to be extremely energy efficient. While part of that efficiency is the responsibility of the hardware platform designers, a large part is related to how the software designers utilize the underlying hardware. This is especially true for the data memory hierarchy. Modern multimedia applications exhibit a very dynamic use of that memory hierarchy, depending on the actual input conditions. To keep track of which memory contains which piece of data, they utilize dynamic data structures and dynamic memory managers. This thesis focuses on optimizing the behaviour of such modern multimedia applications in terms of their data memory usage.