Page 1 of 1

Web Application Profile

Posted: Sat Apr 26, 2008 7:31 pm
by splatti
I am attaching to a worker process on a web server with II6 and .net 1.1 framework. We have a mixture of .net and asp pages. I am seeing alot of types that are identified with an ASP graphic that always have a 0 in unreachable. I understand what unreachable means, but I am always seeing other objects with numbers in unreachable. I only see gen 1 and 2 in the memory tab. These ASP types seem to be growing and growing. What are they? They also have a large amount being used by their children and no identified roots. Is this a memory leak? Is the children memory usage also included in the leak if it is one? Great product by the way.

Posted: Mon Apr 28, 2008 9:33 pm
by Andreas Suurkuusk
When collecting a snapshot from an attached process, it's expected to see types with no unreachable instances as well as types that have unreachable instances. If no new instances have been allocated since the last full GC, then there will be no unreachable instances.

It's a bit strange that you don't see any instances in gen 0. When the profiler is attached to a process, no garbage collection is performed when collecting a heap snapshot and therefore there are usually instances in all generations. Are you making any manual calls to GC.Collect()?

Without additional information about the "ASP types", it's hard to tell what they are. If they consume more and more memory, it's possible that they are part of a memory leak. Investigating the root paths of the types (and their instances), will provide you with additional information about why the instances exists. Hopefully that will help you find out whether the increasing memory usage is legitimate or if it's a memory leak.