3.3. Lazy De-allocation

Intent

Delay the de-allocation of a resource so that an almost immediate re-use of the resource does not incur a performance penalty.

AKA

Delayed Unloading, Lazy Unloading

3.3.1. Problem

3.3.1.1. Context

A resource which is expensive to allocate or de-allocate is used frequently

3.3.1.2. Summary
  • The resources you are interested in are scarce and need to be shared across the system.

  • The use of the resource comes in bursts so that if it is used once there is a good chance it'll be used again soon.

  • You need to provide quick responses and so need to avoid having to allocate a resource whenever possible.

3.3.1.3. Description

As has been repeated many times throughout this book, an open mobile device has a number of constraints that don't affect a PC; in comparison, a PC has almost limitless resources. Mobile devices are also different from small embedded systems such as microwaves and personal video recorders, which have similar, if not stricter, resource constraints. However, they are not expected to be multi-tasking nor to allow the installation of new applications or services which is a key requirement of an open device. Hence when you are developing software for Symbian you need to be a 'good citizen' and cooperate with the other components on a device by sharing resources well.

Part of being a 'good citizen' is to de-allocate resources that you have allocated when they are no longer needed. While this is most commonly true of allocations of memory, ...

Get Common Design Patterns for Symbian OS: The Foundations of Smartphone Software now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.