473,378 Members | 1,364 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,378 software developers and data experts.

leaks in GC?

Hi,
I'm pretty sure I must do something terrible wrong, but it surely does look
like some sort of leak in the GC. (.NET 1.1)
What I did:

created a form, dropped a ContextMenu on it, connected it to the form.
Then I added an emtpy MenuItem to the Menu. No events for the MenuItem,
nothing else.

If I create the Form

f = new Form2();
f.Show();

and free it afterwards

f.Close()
f.Dispose()
f = null;

everything is fine.

BUT:
If I do a right-click on the created form, so that the ContextMenu pops up,
the Form, ContextMenu and the MenuItem wont be collected by the GC.

I went through this by using a Memory-Profiler http://memprofiler.com/.

Can somebody explain to me, whats happening?

Regards,
Michael Sander
// SOURCE-CODE FOR THE EXAMPLE
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace LeakTest
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;

public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();

//
// TODO: Add any constructor code after InitializeComponent call
//
}

/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(40, 44);
this.button1.Name = "button1";
this.button1.TabIndex = 0;
this.button1.Text = "create form";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(40, 88);
this.button2.Name = "button2";
this.button2.TabIndex = 1;
this.button2.Text = "destroy form";
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(164, 169);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);

}
#endregion

/// <summary>
/// Summary description for Form2.
/// </summary>
public class Form2 : System.Windows.Forms.Form
{
private System.Windows.Forms.ContextMenu contextMenu1;
private System.Windows.Forms.MenuItem menuItem1;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;

public Form2()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();

//
// TODO: Add any constructor code after InitializeComponent call
//
}

/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.contextMenu1 = new System.Windows.Forms.ContextMenu();
this.menuItem1 = new System.Windows.Forms.MenuItem();
//
// contextMenu1
//
this.contextMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[]
{
this.menuItem1});
//
// menuItem1
//
this.menuItem1.Index = 0;
this.menuItem1.Text = "nothing";
//
// Form2
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 273);
this.ContextMenu = this.contextMenu1;
this.Name = "Form2";
this.Text = "Form2";

}
#endregion
}

/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}

Form2 f;

private void button1_Click(object sender, System.EventArgs e)
{
f = new Form2();
f.Show();
}

private void button2_Click(object sender, System.EventArgs e)
{
f.Close();
f.Dispose();
f = null;
}
}
}

Apr 25 '06 #1
17 1335
Michael Sander wrote:
BUT:
If I do a right-click on the created form, so that the ContextMenu pops up,
the Form, ContextMenu and the MenuItem wont be collected by the GC.


How long did you wait for the GC to kick in? The GC doesn't
necessarily reclaim the memory as soon as you call .Dispose. Are you
sure you waited long enough for the GC to kick in?

Apr 25 '06 #2
yes, i guess so. Called it a couple of times and been waiting for something
like 5 Minutes.

"Chris Dunaway" <du******@gmail.com> schrieb im Newsbeitrag
news:11**********************@i39g2000cwa.googlegr oups.com...
Michael Sander wrote:
BUT:
If I do a right-click on the created form, so that the ContextMenu pops
up,
the Form, ContextMenu and the MenuItem wont be collected by the GC.


How long did you wait for the GC to kick in? The GC doesn't
necessarily reclaim the memory as soon as you call .Dispose. Are you
sure you waited long enough for the GC to kick in?

Apr 25 '06 #3
"Michael Sander" <sp**@h3c.de> wrote:
f.Close()
f.Dispose()
f = null;
If I do a right-click on the created form, so that the ContextMenu pops up,
the Form, ContextMenu and the MenuItem wont be collected by the GC.


I don't know much about the .net garbage collector. But my
understanding is that it "Just Doesn't Work This Way." Things that
implement IDisposable do so because they have unmanaged resources that
must be got rid of at a certain time. A form has unmanaged resources
(the win32 HWNDs &c.) and by calling f.Dispose() you are explicitly
getting rid of them.

But the .net object, the WinForm formerly known as "f", remains.

You set "f" to null. Probably there are no more pointers to the form
in your program (unless the Application object retained a pointer to
it, though I doubt this). Therefore the form object is a CANDIDATE for
garbage collection.

But there's no reason why garbage collection should take place, even
within your five-minute wait. As MSDN says: "it is not possible to
predict when garbage collection will occur." I bet that garbage
collection is waiting until memory is tight before it bothers doing
any collection.

Specifically, MSDN says "The garbage collector's optimizing engine
determines the best time to perform a collection, based upon the
allocations being made." That suggests to me that garbagge-collection
is normally triggered by some subsequent "new" statements, not by
waiting 5 minutes.

Read the MSDN topic "GC class". Maybe try its sample code:

// Determine which generation myGCCol object is stored in.
Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol));

// Determine the best available approximation of the number
// of bytes currently allocated in managed memory.
Console.WriteLine("Total Memory: {0}", GC.GetTotalMemory(false));

// Perform a collection of generation 0 only.
GC.Collect(0);

// Determine which generation myGCCol object is stored in.
Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol));

Console.WriteLine("Total Memory: {0}", GC.GetTotalMemory(false));

// Perform a collection of all generations up to and including 2.
GC.Collect(2);

--
Lucian
Apr 25 '06 #4
to be exact: called GC.Collect a couple of times

"Michael Sander" <sp**@h3c.de> schrieb im Newsbeitrag
news:%2****************@TK2MSFTNGP04.phx.gbl...
yes, i guess so. Called it a couple of times and been waiting for
something like 5 Minutes.

"Chris Dunaway" <du******@gmail.com> schrieb im Newsbeitrag
news:11**********************@i39g2000cwa.googlegr oups.com...
Michael Sander wrote:
BUT:
If I do a right-click on the created form, so that the ContextMenu pops
up,
the Form, ContextMenu and the MenuItem wont be collected by the GC.


How long did you wait for the GC to kick in? The GC doesn't
necessarily reclaim the memory as soon as you call .Dispose. Are you
sure you waited long enough for the GC to kick in?


Apr 25 '06 #5
It doesn't mater how long that you wait, if you don't create any more
objects, the GC won't kick in.
The GC kicks in when an allocation threshold has been reached, that is if
you don't allocate any more objects (or only very few and small) after you
called Dispose, GC won't happen.

Willy.

"Michael Sander" <sp**@h3c.de> wrote in message
news:%2****************@TK2MSFTNGP04.phx.gbl...
| yes, i guess so. Called it a couple of times and been waiting for
something
| like 5 Minutes.
|
| "Chris Dunaway" <du******@gmail.com> schrieb im Newsbeitrag
| news:11**********************@i39g2000cwa.googlegr oups.com...
| > Michael Sander wrote:
| >> BUT:
| >> If I do a right-click on the created form, so that the ContextMenu pops
| >> up,
| >> the Form, ContextMenu and the MenuItem wont be collected by the GC.
| >
| > How long did you wait for the GC to kick in? The GC doesn't
| > necessarily reclaim the memory as soon as you call .Dispose. Are you
| > sure you waited long enough for the GC to kick in?
| >
|
|
Apr 25 '06 #6
yes your right, I didn't mention this earlier.

I DID call GC.Collect().

think of it like this:
f.Close()
f.Dispose()
f = null;
GC.Collect();

As for the unmanaged ressources:
I guess the GC should take care of all the components provided by .NET.
Otherwise we all would end up clicking huge foms together and spending hours
and hours afterwards trying to find all ressources that we must take care of
manually.
This you wouldnt call RAD or? :-)

Besides the MemoryProfiler I had another try on this with an ArrayList of
WeakReferences to the Form, ContextMenu and MenuItem. They are never
released, never mind how often you call GC.Collect().
"Lucian Wischik" <lu***@wischik.com> schrieb im Newsbeitrag
news:2a********************************@4ax.com...
"Michael Sander" <sp**@h3c.de> wrote:
f.Close()
f.Dispose()
f = null;
If I do a right-click on the created form, so that the ContextMenu pops
up,
the Form, ContextMenu and the MenuItem wont be collected by the GC.


I don't know much about the .net garbage collector. But my
understanding is that it "Just Doesn't Work This Way." Things that
implement IDisposable do so because they have unmanaged resources that
must be got rid of at a certain time. A form has unmanaged resources
(the win32 HWNDs &c.) and by calling f.Dispose() you are explicitly
getting rid of them.

But the .net object, the WinForm formerly known as "f", remains.

You set "f" to null. Probably there are no more pointers to the form
in your program (unless the Application object retained a pointer to
it, though I doubt this). Therefore the form object is a CANDIDATE for
garbage collection.

But there's no reason why garbage collection should take place, even
within your five-minute wait. As MSDN says: "it is not possible to
predict when garbage collection will occur." I bet that garbage
collection is waiting until memory is tight before it bothers doing
any collection.

Specifically, MSDN says "The garbage collector's optimizing engine
determines the best time to perform a collection, based upon the
allocations being made." That suggests to me that garbagge-collection
is normally triggered by some subsequent "new" statements, not by
waiting 5 minutes.

Read the MSDN topic "GC class". Maybe try its sample code:

// Determine which generation myGCCol object is stored in.
Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol));

// Determine the best available approximation of the number
// of bytes currently allocated in managed memory.
Console.WriteLine("Total Memory: {0}", GC.GetTotalMemory(false));

// Perform a collection of generation 0 only.
GC.Collect(0);

// Determine which generation myGCCol object is stored in.
Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol));

Console.WriteLine("Total Memory: {0}", GC.GetTotalMemory(false));

// Perform a collection of all generations up to and including 2.
GC.Collect(2);

--
Lucian

Apr 25 '06 #7
Yepp, forgot to tell you guys that I've been calling GC.Collect() manually.
Besides, the small example is the result of tracking down a memory leak in
an rather huge app. There I've got dozends of objects beeing referenced by
the Form, ContextMenu and the MenuItem.
All of them will be released, if i don't right-click the form. But if I do,
they will all stay.
I've been watching the GC for a while, tracking all objects with Lists of
WeakReferences and calling GC.Collect() like hell.
Took me ages to realize that the reason is the simple .NET ContextMenu, not
my derived Components or other objetcs.

Michael

"Willy Denoyette [MVP]" <wi*************@telenet.be> schrieb im Newsbeitrag
news:%2***************@TK2MSFTNGP02.phx.gbl...
It doesn't mater how long that you wait, if you don't create any more
objects, the GC won't kick in.
The GC kicks in when an allocation threshold has been reached, that is if
you don't allocate any more objects (or only very few and small) after you
called Dispose, GC won't happen.

Willy.

"Michael Sander" <sp**@h3c.de> wrote in message
news:%2****************@TK2MSFTNGP04.phx.gbl...
| yes, i guess so. Called it a couple of times and been waiting for
something
| like 5 Minutes.
|
| "Chris Dunaway" <du******@gmail.com> schrieb im Newsbeitrag
| news:11**********************@i39g2000cwa.googlegr oups.com...
| > Michael Sander wrote:
| >> BUT:
| >> If I do a right-click on the created form, so that the ContextMenu
pops
| >> up,
| >> the Form, ContextMenu and the MenuItem wont be collected by the GC.
| >
| > How long did you wait for the GC to kick in? The GC doesn't
| > necessarily reclaim the memory as soon as you call .Dispose. Are you
| > sure you waited long enough for the GC to kick in?
| >
|
|

Apr 25 '06 #8
Since I missed some code...
Exchange the previous button2_Click with this version:

private void button2_Click(object sender, System.EventArgs e)
{
if (f != null)
{
f.Close();
f.Dispose();
f = null;
}
GC.Collect();
}

"Michael Sander" <sp**@h3c.de> schrieb im Newsbeitrag
news:uJ**************@TK2MSFTNGP02.phx.gbl...
Hi,
I'm pretty sure I must do something terrible wrong, but it surely does
look like some sort of leak in the GC. (.NET 1.1)
What I did:

created a form, dropped a ContextMenu on it, connected it to the form.
Then I added an emtpy MenuItem to the Menu. No events for the MenuItem,
nothing else.

If I create the Form

f = new Form2();
f.Show();

and free it afterwards

f.Close()
f.Dispose()
f = null;

everything is fine.

BUT:
If I do a right-click on the created form, so that the ContextMenu pops
up, the Form, ContextMenu and the MenuItem wont be collected by the GC.

I went through this by using a Memory-Profiler http://memprofiler.com/.

Can somebody explain to me, whats happening?

Regards,
Michael Sander
// SOURCE-CODE FOR THE EXAMPLE
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace LeakTest
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;

public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();

//
// TODO: Add any constructor code after InitializeComponent call
//
}

/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(40, 44);
this.button1.Name = "button1";
this.button1.TabIndex = 0;
this.button1.Text = "create form";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(40, 88);
this.button2.Name = "button2";
this.button2.TabIndex = 1;
this.button2.Text = "destroy form";
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(164, 169);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);

}
#endregion

/// <summary>
/// Summary description for Form2.
/// </summary>
public class Form2 : System.Windows.Forms.Form
{
private System.Windows.Forms.ContextMenu contextMenu1;
private System.Windows.Forms.MenuItem menuItem1;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;

public Form2()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();

//
// TODO: Add any constructor code after InitializeComponent call
//
}

/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.contextMenu1 = new System.Windows.Forms.ContextMenu();
this.menuItem1 = new System.Windows.Forms.MenuItem();
//
// contextMenu1
//
this.contextMenu1.MenuItems.AddRange(new
System.Windows.Forms.MenuItem[] {
this.menuItem1});
//
// menuItem1
//
this.menuItem1.Index = 0;
this.menuItem1.Text = "nothing";
//
// Form2
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 273);
this.ContextMenu = this.contextMenu1;
this.Name = "Form2";
this.Text = "Form2";

}
#endregion
}

/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}

Form2 f;

private void button1_Click(object sender, System.EventArgs e)
{
f = new Form2();
f.Show();
}

private void button2_Click(object sender, System.EventArgs e)
{
f.Close();
f.Dispose();
f = null;
}
}
}

Apr 25 '06 #9
Are you sure Dispose was called on the menus as well?

Apr 25 '06 #10
Michael,

It doesn't look like your context menu objects where ever added to the
components object for Form2, so nothing ever calls disposed on your
context menus.

Apr 25 '06 #11
Hm, yes your right.

I was wondering about that too. But since all this code has been generated
by the designer, it should work.
"Andy" <aj*****@alum.rit.edu> schrieb im Newsbeitrag
news:11**********************@y43g2000cwc.googlegr oups.com...
Michael,

It doesn't look like your context menu objects where ever added to the
components object for Form2, so nothing ever calls disposed on your
context menus.

Apr 25 '06 #12
Have you tried calling GC.WaitForPendingFinalizers() immediately after
GC.Collect()? It could be that something isn't being disposed correctly when
the form is disposed, which means the cleanup will only occur during
finalise.

--
Kevin Westhead

"Michael Sander" <sp**@h3c.de> wrote in message
news:Oj**************@TK2MSFTNGP05.phx.gbl...
Since I missed some code...
Exchange the previous button2_Click with this version:

private void button2_Click(object sender, System.EventArgs e)
{
if (f != null)
{
f.Close();
f.Dispose();
f = null;
}
GC.Collect();
}

<snip>

Apr 25 '06 #13
I'm using .Net 2.0 and MenuStrips, but the code generated does add the
those controls for me to the components.

Maybe the designer isn't working right? Or maybe the code got removed
accidently?

At any rate you're not really disposing everything properly; Make sure
that those controls are disposed of, since i believe they'd hold a
reference to the form they are on (which means that can't be GCed).

Andy

Apr 25 '06 #14
Good point, checked this and found out that most Controls are added to
this.Controls, but not the ContextMenu and not the MenuItems.

Is this 'by design' or just some flaw in my Environent? I can reproduce this
on at least 2 Systems...

Michael

"Andy" <aj*****@alum.rit.edu> schrieb im Newsbeitrag
news:11*********************@i39g2000cwa.googlegro ups.com...
I'm using .Net 2.0 and MenuStrips, but the code generated does add the
those controls for me to the components.

Maybe the designer isn't working right? Or maybe the code got removed
accidently?

At any rate you're not really disposing everything properly; Make sure
that those controls are disposed of, since i believe they'd hold a
reference to the form they are on (which means that can't be GCed).

Andy

Apr 26 '06 #15
I tried this, and it works, if i first create the components list and then
add the contextmenu to it manually.
But it isnt meant to work like this, is it?

The designer isnt able to produce code that cleans up the ressources it
creates?
Im quite new to Visual Studio and C#, until now I found it rather
convincing, but this leaves some silly feelings in my stomach...
"Andy" <aj*****@alum.rit.edu> schrieb im Newsbeitrag
news:11*********************@i39g2000cwa.googlegro ups.com...
I'm using .Net 2.0 and MenuStrips, but the code generated does add the
those controls for me to the components.

Maybe the designer isn't working right? Or maybe the code got removed
accidently?

At any rate you're not really disposing everything properly; Make sure
that those controls are disposed of, since i believe they'd hold a
reference to the form they are on (which means that can't be GCed).

Andy

Apr 26 '06 #16
I can't answer that. Try adding them to the components collection
manually, and see if that solves your problem. If it does, perhaps it
is a bug.

Apr 26 '06 #17

Michael Sander wrote:
I tried this, and it works, if i first create the components list and then
add the contextmenu to it manually.
But it isnt meant to work like this, is it?

The designer isnt able to produce code that cleans up the ressources it
creates?
Im quite new to Visual Studio and C#, until now I found it rather
convincing, but this leaves some silly feelings in my stomach...

I would say this is a bug in VS2003. It's 'fixed' in VS2005: in
Framework 2.0, ContextMenu is replaced by ContextMenuStrip. One of the
ctors for ContextMenuStrip accepts an IContainer which is "A component
that implements IContainer that is the container of the
ContextMenuStrip." In the Remarks section of that ctor's documentation
we see quite clearly:

Remarks
Use this constructor to ensure that the ContextMenuStrip is disposed of
properly, since it is not a child of the form.

The code autogenerated by VS2005 uses this ctor. There is no such ctor
in Framework 1.1. Probably you would be able to find somewhere on msdn2
a list of known issues in 1.1 fixed in 2.0; this would be one such.

By way of reference, this is the code VS2003 creates when you drop a
ContextMenu on a form:

private void InitializeComponent()
{
this.contextMenu1 = new System.Windows.Forms.ContextMenu();
//no further reference to contextMenu1; in particular,
//no addition of it to this.components

And this is what VS2005 generates:

private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.contextMenuStrip1 = new
System.Windows.Forms.ContextMenuStrip(this.compone nts);
So, to give the old support cliche, your problem would be fixed by
upgrading to the latest version...

--
Larry Lard
Replies to group please

Apr 26 '06 #18

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
by: Maurice | last post by:
Hi there, I'm experiencing big memory problems on my webserver. First on an old RedHat 7.2 system, now on an other fresh installed Suse 8.2 system: Linux version 2.4.20-4GB...
1
by: Robert | last post by:
Hi, I am building with VS 6.0 under WinXP, and building with the default python configuration & settings. I build a test python app with just the following code: /* testing for memory leaks...
0
by: Steve Binney | last post by:
My code makes synchronous HttpWebRequest and HttpRebResponse calls. In VS 2003, I am getting memory leaks and event handle leaks. I am closing all streams and using "using"statements. I have...
2
by: Generic Usenet Account | last post by:
I have been using STL for a long time now, without any problems. Recently we generated a purification report on our software using Rational Purify, and we found some memory leaks. My colleague...
3
by: laniik | last post by:
Hi. I was wondering if there were any known leaks using STL vectors. Also, I was wondering if I have to do any sort of deleting or memory clearing when im done with the vector, or will they be...
2
by: Peter Strøiman | last post by:
Hi. I have a project that leaks :( I tried using the _crtDumpMemoryLeaks function, and I get the memory leaks written to the output window, but it doesn't show the correct source file. Instead...
0
by: Frank Lopez | last post by:
Does anyone know if Microsoft generated a whitepaper on this topic? Does anyone know what the solution is? (meaning, eliminate the leak problem -- I am seeing three memory leaks from...
4
by: ali.jan | last post by:
Hi, It is trivial to load an assembly in a new Application Domain. Is there any way of loading an assembly in a new process? I tried using the Process class like this: Process p = new...
3
by: Jim Land | last post by:
Jack Slocum claims here http://www.jackslocum.com/yui/2006/10/02/3-easy-steps-to-avoid-javascript- memory-leaks/ that "almost every site you visit that uses JavaScript is leaking memory". ...
2
by: asterixgallier | last post by:
Hello i'm having problems with log4cxx when using inside an MFC application build with visual studio 2005. The Application starts and works normaly, but while exiting, inside the DEBUG window of...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.