Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 978479
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 16, 20262026-05-16T04:03:52+00:00 2026-05-16T04:03:52+00:00

I have an ASP.NET website that will hit about 2gb physical memory used within

  • 0

I have an ASP.NET website that will hit about 2gb physical memory used within about 3-4 days, which to me sounds really bad. At the moment, I have configured IIS to restart the app pool process when it hits 500mb. I would like to try and track down the problem.

When creating a new instance of an object in .NET, I was under the impression that it doesn’t need to be freed as the .NET garbage collector will do this for me.

Is that the case or could this be one of the reasons I am having issues?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-16T04:03:53+00:00Added an answer on May 16, 2026 at 4:03 am

    .NET will manage garbage collection for you very efficiently. While on types that implement IDisposable it is wise to call the Dispose method, this probably isn’t your problem. Memory leaks can happen in .NET for a lot of reasons. Here are a few:

    • You cache too much data per user in the Session.
    • You cache too much data on an application level in the application cache or in a static variable such as a dictionary.
    • You store web controls (or user controls) in the session or application level.
    • You hook instances to events on static types or to types that keep being referenced (because they are stored in a cache).

    I hope this gives you some ideas about where to look.

    UPDATE: You should watch this video about ASP.NET debugging.

    UPDATE 2:
    About your comment on my answer the following.
    The CLR will collect all managed memory, therefore all object you create using new will get collected. In this sense, it doesn’t matter whether an object implements IDisposable or not. There are however many times that you need to use native resources (such as file handles, graphic handles, database connections, use of native -thus unmanaged- memory) directly or indirectly. The CLR does not know how to release these resources. For this .NET has the notion of finalizers. A finalizer is a virtual method that a the developer of a class can implement. When you do this, the CLR will call this method after an instance of that type gets unreferenced and before it gets collected. Finalizers typically contain logic that release these resources. In other words, when a type needs native resources, it will usually have a finalizer method that allow the type to release those resources.

    What about the CLR is concerned, the story ends here. The CLR has no specific handling of objects that implement the IDisposable interface. The .NET garbage collector however, is undeterministic in nature. This means that you don’t know when it runs and if it runs. This means that it can take a very long time before your native resources get cleaned up (because a finalizer will only get called after a collect). For many resources however, it is necessary to release them as soon as your done with them. For instance, you tend to run out of database connections quickly when you don’t close them or when you’re working with GDI+ in .NET through the System.Drawing namespace).

    For this reason the IDisposable interface was introduced. Again, the CLR and the garbage collector don’t look at this interface. It is a contract between the type and its users, allowing its users to directly release the underlying resources of an object. In a normal design both the object’s finalizer and the object’s Dispose method will call the same private or protected method that will release those resources. When a type implements IDisposable it is wise to call it’s Dispose method when you’re done with it or wrap the object in a using statement to allow the release of native resources to be deterministic.

    So to come back to your question. All managed objects will be collected by the GC, but native resources won’t. Therefore types might implement a finalizer method and those objects will also typically implement the IDisposable interface. Calling Dispose on them will explicitly and directly release those native resources.

    I hope this makes sense.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

We have a large ASP.Net website that has a single css stylesheet which is
I have a ASP.Net website that is failing on AJAX postbacks (both with ASP.Net
I have an asp.net website that allows the user to download largish files -
I have an asp.net website that uses forms authentication. There are a few things
I have a ASP.Net 2.0 website that is currently using a custom MembershipProvider and
I have an ASP.NET website (in C#) that takes in user data and then
I have an ASP.NET MVC (Beta 1) website that I'm using themes with. When
I currently have an asp.net website hosted on two web servers that sit behind
I have an asp.net mvc app running on a local iis website that is
I have a webservice that exists in an asp.net website. When I publish the

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.