Home »

Why doesn’t the .NET runtime offer deterministic destruction?

Question ListCategory: ASP.NETWhy doesn’t the .NET runtime offer deterministic destruction?
ethanbrown author asked 9 years ago
1 Answers
adamemliy16 author answered 8 years ago

Because of the garbage collection algorithm. The .NET garbage collectorworks by periodically running through a list of all the objects that are
currently being referenced by an application. All the objects that it doesn’t
find during this search are ready to be destroyed and the memory reclaimed.
The implication of this algorithm is that the runtime doesn’t get notified
immediately when the final reference on an object goes away – it only finds
out during the next ‘sweep’ of the heap.
Futhermore, this type of algorithm works best by performing the garbage
collection sweep as rarely as possible. Normally heap exhaustion is the
trigger for a collection sweep.

Please login or Register to Submit Answer