Hi Ben,

That's a difference alright, but I don't immediately see how that could be
causing the symptoms I'm seeing.

As I understand it, your typical Windows application (e.g. my Windows Forms
application) will attempt to minimize its working set when it's main window
is minimized. So, I tried a crude test. I minimized the application just
before the point it locks up, but the problem was still there at the next
GC. Inconclusive, I know, but that particular NT4 difference just doesn't
seem to fit the problem.

The more I look at it, the more I think it's to do with the GUI. According
the excellent .NET Memory Profiler, we have >21,000 instances of objects
after startup, and there are >26,000 instances when the symptoms begin to
appear. This isn't a huge difference, and I'm sure any other app with these
sorts of numbers wouldn't lock the way this one does.

What is different is the contents of the forms. But I fail to understand why
these forms which work so well on 2000/XP cause such a problem for the GC on
NT4. The forms themselves still work fine on NT4, it's just that the next GC
after opening one of the forms will lock the application, taking all the CPU
time, for several minutes!

I also tried a build with V1.1 beta of the framework an the problem's still
there. This one's really got me stumped, and is the only thing stopping us
releasing our new product! :(

Is there any way I can:

a) prove/disprove that it's the finalization that is taking so long?
b) depending on (a), find out which objects are taking so long to finalize?


Cheers,
G.
--
Graeme Foster ([EMAIL PROTECTED])
Principal Software Engineer
Aston Broadcast Systems Ltd. (http://www.aston.tv)
Disclaimer: I really don't have a clue what I'm on about.

-----Original Message-----
From: Moderated discussion of advanced .NET topics.
[mailto:ADVANCED-DOTNET@;discuss.develop.com]On Behalf Of Ben Kloosterman
Sent: 01 November 2002 16:45
To: [EMAIL PROTECTED]
Subject: Re: Extremely slow GC's on NT4


NT4 memory manangement is different - if there is no server memory pressurer
it does not  bother reducing the working set as there is no need. 2000
started being more aggresive as people were complaining about excesive page
size ( even thou there was little paging)

-----Original Message-----
From: Moderated discussion of advanced .NET topics.
[mailto:ADVANCED-DOTNET@;DISCUSS.DEVELOP.COM]On Behalf Of Graeme Foster
Sent: Friday, 1 November 2002 11:05 PM
To: [EMAIL PROTECTED]
Subject: [ADVANCED-DOTNET] Extremely slow GC's on NT4


Hi,

I'm experiencing incredibly long delays during some GC's on NT4 systems. The
time taken seems to increase dramatically from less than a second to almost
an hour, depending on how many controls (and their associated objects) are
in use at the time.

Our app is a fairly straightforward Windows Forms application, but a couple
of our forms make use of quite heavily nested controls; it's when these are
in use that the excessively long GC times occur.

This problem doesn't happen on 2000/XP, and the forms work well.

I've tested this by varying the quantities of controls and manually calling
GC.Collect() and GC.WaitForPendingFinalizers().

Any idea why we're hitting this problem? Something different about NT4?



*****************************************************************************
The contents of this email and any attachments are confidential.
It is intended for the named recipient(s) only.
If you have received this email in error please notify the system manager or  the
sender immediately and do not disclose the contents to any one or make copies.

** eSafe scanned this email for viruses, vandals and malicious content **

*****************************************************************************

You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced 
DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to