garbage-collection

Static methods vs instance methods in C#

For an application I am writing, I want to have extreme extensibility and extension methods seem to give me what I want, plus the ability to call them without an instance, which I need too. I remember reading that static methods are faster than instance methods but don't get the advantages of GC. Is this correct? It's highly unlikely I...

Garbage Collection in Biztalk, What would be the wise approach?

Our Biztalk 2006 application contains two orchestrations which are invoked on frequent basis (approx 15 requests per second). We identified possible memory leakages in our application by doing certain throttling threshold changes in the host. As we disabled the memory based throttling, the Process memory started increasing till 1400 MB a...

Why isn't my .net destructor called in this very simple scenario?

I've got the following code : public class A { ~A() { Console.WriteLine("destructor"); } } public static A Aref; static void Main(string[] args) { Aref = new A(); int gen = GC.GetGeneration(Aref); Aref = null; GC.Collect(gen, GCCollectionMode.Forced); ...

is it legal to recreate a rooted reference to 'this' in a .net destructor ?

Is it legal to write the following in .net ? public class A { public int i = 0; ~A() { Aref = this; } } public static A Aref; static void Main(string[] args) { Aref = new A(); int gen = GC.GetGeneration(Aref); Aref = null; GC.Collect(gen...

In-process communication design with WCF (.NET)

Hi everyone, I have an interesting design problem and I was hoping you all could make some suggestions. I'm using C# and .NET 3.0 I have a very nice, extensible framework built on top of WCF that automates the setup of endpoints and the creation of contracts. The system I'm working in could be run in different ways - endpoints could b...

Memory Leak in C#

Is it ever possible in a managed system to leak memory when you make sure that all handles, things that implement IDispose are disposed? Would there be cases where some variables are left out? ...

Are there any events that tell an application when garbage collection has occurred?

I am trying to find a way to know about garbage collection. Either, when it has started, finished or is in process. I really just need some event connected to the collection itself (I think). My issue is that I have a WeakEventManager (written from scratch) and I have cleanup methods that delete and WeakReferences that are no longer ali...

What is an easy way to explain how Garbage Collection works?

I have a short attention span so I couldn't make my way through the Wikipedia article. I understand there are several techniques for garbage collection but a common one is the "reachability" test, where an object's eligibility for collection is based on whether or not it can be "reached" by a rooted object (which, to my understanding is...

Has anyone found Garbage Collection tuning to be useful?

I've read plenty of articles about tuning GC in Java and have often wondered how many people really use some of the more advanced features. I've always avoided tuning where possible and concentrated on writing the simplest possible code I can (Brian Goetz's advice) - this seems to have worked well for me so far. Are these tuning strate...

large object cache

I have a .NET2.0 C# web-app. It has a variable number of large, init-expensive objects which are shared across multiple requests but not sessioned to any given user. I therefore need to persist them in a lookup structure. These objects need to be created as required and are not required for the lifespan of the app, merely the lifespan of...

When NOT to use garbage collection?

The obvious cases for not using garbage collection are hard realtime, severely limited memory, and wanting to do bit twiddling with pointers. Are there any other, less discussed, good reasons why someone would prefer manual memory management instead of GC? ...

Short-lived objects

What is the overhead of generating a lot of temporary objects (i.e. for interim results) that "die young" (never promoted to the next generation during a garbage collection interval)? I'm assuming that the "new" operation is very cheap, as it is really just a pointer increment. However, what are the hidden costs of dealing with this te...

How does the IDisposable interface work?

I understand that it is used to deallocate unmanaged resources, however, I am confused as to when Dispose is actually called. I know it is called at the end of a using block, but does it also get invoked when the object is garbage collected? ...

Equivalent to SoftReference in .net?

I am familiar with WeakReference, but I am looking for a reference type that is cleared only when memory is low, not simply every time when the gc runs (just like Java's SoftReference). I'm looking for a way to implement a memory-sensitive cache. ...

GC.KeepAlive versus using

In his article about preventing multiple instances of an application, Michael Covington presents this code: static void Main() // args are OK here, of course { bool ok; m = new System.Threading.Mutex(true, "YourNameHere", out ok); if (! ok) { MessageBox.Show("Another instance is already running....

Check for garbage collection in .NET?

Is there a way of checking if an object was collected by the Garbage Collector in .NET? I'm trying to write an API that'll hook onto some events of objects that are passed in, and I need to make sure I don't use strong references to the object. I know how to do this, but I'd also like to write a unit test to verify this, and that I don'...

Garbage Collection on one object, C#

I need to dispose of an object so it can release everything it owns, but it doesn't implement the IDisposable so I can't use it in a using block. How can I make the garbage collector collect it? ...

side effects of garbage collection?

This may be an eminently closeable question, but I'm the type that sees what sticks to the wall. For all of the benefits of memory and lifetime management afforded by a garbage collected runtime, have there been any notable cases of program indeterminacy caused by race conditions between an application and its garbage collector? Has a ...

.NET WinForm GC question

Is this code clean? private void button1_Click(object sender, EventArgs e) { frmCustomDialog f = new frmCustomDialog(); if(f.ShowDialog() == DialogResult.OK) TextBox1.Text = f.MyCustomProperty; } Do you need to close or dispose the form f or anything? Or is it automatically garbage-collected? Thank you. ...

NSWorkspace notificationCenter not sending notifications under Garbage Collection

I'm not sure if I'm doing something wrong here: I'm registering for Workspace notifications using this snippet in awakeFromNib [[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self selector:@selector(noteReceived:) name:nil object:nil]; the selector noteReceived: takes a single NSNoti...