huge amount of memory allocated by VB.NET WindowsApplication

Use this forum to discuss subjects that don't belong in the other forums.
Post Reply

huge amount of memory allocated by VB.NET WindowsApplication

Post by Steve » Wed Sep 28, 2005 4:21 pm

it's just a very brief description, but mb someone can help me with my problems:

First let me say that I'm new at memory issues and I'm currently trying to find reasons for our memory problems.

What you should know about the application:
- We are developing a WindowsApplication with VS 2003 FW1.1 (VB.NET).
- Our Appliaction is parted in several modules (DLLs) that are all referenced by the main module/main program.
- the application is mostly gui + showing and manipulating data of a SQLServer database
- we are using C1 Components (especially lots of TrueDBGrid and C1Combo)

I did some early research work with mem profiler trial and I found out the following:

When I start the main module and open a form of another module, mem profiler shows the currently used memory (real time view) to be about 1,5 MB - not a big deal.
The same time when I watch the memory in taskmanager (process of the main programm) it shows bout 40 MB.
The same amount is shown in mem profiler when I watch the physical memory view.

I found several memory leaks with mem profiler and could manage to avoid many of them. But it did not get better with this.
When I use the application for some minutes the physical memory goes up quickly to 120, 130 MB, although the real view in mem profiler shows much less memory.

My question is:
Are these massive differences between real time view and physical mem view (like in task manager) just caused bei CLR and COM?
Or are there other possible reasons for this?

It's just because our system admins do not accept the quite low memory in "real time view", but just the the "real one" of task manager :)

Andreas Suurkuusk
Posts: 1030
Joined: Wed Mar 02, 2005 7:53 pm

Post by Andreas Suurkuusk » Thu Sep 29, 2005 9:20 am

It seems like your application is using a lot of unmanaged memory. This can be caused by not releasing COM-objects properly, or not disposing classes that wrap unmanaged resources.

Unfortunately, the current version of the profiler does not provide any additional information about unmanaged resources and memory. I suggest that you make sure that you correctly dispose all disposable instances (the dispose tracker will help you with this), and that you make sure that all COM objects are correctly released (using Marshal.ReleaseComObject).

The most requested new feature is to include an unmanaged resource tracker, and as soon as we have released v2.6 of the profiler, we will make that our top priority. The unmanaged resource tracker will be included in the next major upgrade of .NET Memory Profiler (v3.0). However, this is a big upgrade and it may take a while before it's released, so we will make previews available of some features as soon as they are stable enough.
Best regards,

Andreas Suurkuusk
SciTech Software AB

Post Reply

Who is online

Users browsing this forum: No registered users and 13 guests