|
Data Structures and Algorithms
with Object-Oriented Design Patterns in C# |
Sometimes, a C# program will create many objects which are used only once. For example, a program may create an object in the body of a loop that is used to hold ``temporary'' information that is only required for the particular iteration of the loop in which it is created. Consider the following:
for (int i = 0; i < 1000000; ++i)
{
SomeClass obj = new SomeClass(i);
Console.WriteLine(obj);
}
This creates a million instances
of the SomeClass class and prints them out.
If the SomeClass class has a propery, say Value,
that provides a set accessor,
we can reuse an a single object instance like this:
SomeClass obj = new SomeClass();
for (int i = 0; i < 1000000; ++i)
{
obj.Value = i;
Console.WriteLine(obj);
}
Clearly, by reusing a single object instance,
we have dramatically reduced the amount of garbage produced.