
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
190
|
Chapter 3: Classes and Structures
3.29 Creating an Object Cache
Problem
Your application creates many objects that are expensive to create and/or have a
large memory footprint—for instance, objects that are populated with data from a
database or a web service upon their creation. These objects are used throughout a
large portion of the application’s lifetime. You need a way to not only enhance the
performance of these objects—and as a result, your application—but also to use
memory more efficiently.
Solution
Create an object cache to keep these objects in memory as long as possible, without
tying up valuable heap space and possibly resources. Since cached objects may be
reused at a later time, you also forego the process of having to create similar objects
many times.
You can reuse the ASP.NET cache that is located in the
System.Web.Caching
namespace, or you can build your own lightweight caching mechanism. The See Also
section at the end of this recipe provides several Microsoft resources that show you
how to use the ASP.NET cache to cache your own objects. However, the ASP.NET
cache is very complex and may have a nontrivial overhead associated with it, so using a
lightweight caching mechanism like the one shown here is a viable alternative.
The
ObjCache<T,U> class shown in Example 3-19 ...