Re: Can I abandon the lock on .SyncRoot and lock a collection directly? Less available memory in 2.0?
- From: DC <dc@xxxxxxxxx>
- Date: 19 Apr 2007 12:56:12 -0700
Hi,
I finally fixed the problem. ".Net Memory Profiler" was a beeze to use
and helped to locate the problem quickly.
I was using a class derived from streamwriter. The streamwriter was
always constructed with a 2MB buffer. In Framework 1.1 the garbage
collector disposed those objects correctly. In Framework 2.0 I could
see those objects pile up forever.
I then modified the code and now the class does not derive from
streamwriter anymore. Instead I am simply using a textwriter as a
field of my class to write data.
Thanks again, Regards
DC
On 13 Apr., 18:56, "DC" <d...@xxxxxxxxx> wrote:
On 6 Apr., 14:47, "Frank Hileman"
<frank...@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
Hi DC,
Try running this program, but with a much smaller data set -- it adds a lot
of overhead.
ClrProfiler:http://www.microsoft.com/downloads/details.aspx?familyid=A362781C-387...
Log dumper for ClrProfiler logs:http://blogs.msdn.com/ricom/articles/449244.aspx
Regards,
Frank Hileman
check out VG.net:http://www.vgdotnet.com
Animated vector graphics system
Integrated Visual Studio graphics editor
"DC" <d...@xxxxxxxxx> wrote in message
news:1175854678.193242.150290@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Hi,
I am porting an app from Framework 1.1 to 2.0 and I am now using
Dictionary objects instead of Hashtables. There are some
lock (theHashtable.SyncRoot)
statements in the 1.1 code and I replaced those by
lock (theDictionary)
statements. I did not note a difference, but I wanted to ask if this
generates any issues like more granular locking.
I swapped out the Hashtable in the first place because I was hoping
that this would safe somememory. I am observing the following: under
1.1, my app is using p to 1300 MB ofmemoryand running fine. With
2.0, the app is now using about 1100 MB ofmemoryand then starts
throwing "out ofmemory" exceptions (2GB RAM Windows 2003 machines). I
have not found a way to solve this by cofiguration, and I am therefore
trying to save RAM now. Can someone recommend a really easy method to
profile which objects use what amount of RAM?
TIA for any hints,
Regards
DC- Zitierten Text ausblenden -
- Zitierten Text anzeigen -
I tried CLR Profiler. It does - of course - bog down the system
heavily and builds a 10GB or so trace file rather quickly. It then
takes quiet a while to create graphs from that and I am frankly not
expert enough to interpret what I get then. I get the accumulated size
of all strings and stuff like that.
What I need is a simple way to periodically dump out the total size of
some objects. E.g. I need to know how fast a certain instance of a
dictionary grows.
I am now trying .NetMemoryProfiler 3.0 but maybe someone knows a
simple way to get some object sizes; or has designed a routine that
iterates through a collection and sums up the sizes of all objects
contained therein.
Regards
DC- Zitierten Text ausblenden -
- Zitierten Text anzeigen -
.
- References:
- Can I abandon the lock on .SyncRoot and lock a collection directly? Less available memory in 2.0?
- From: DC
- Re: Can I abandon the lock on .SyncRoot and lock a collection directly? Less available memory in 2.0?
- From: Frank Hileman
- Re: Can I abandon the lock on .SyncRoot and lock a collection directly? Less available memory in 2.0?
- From: DC
- Can I abandon the lock on .SyncRoot and lock a collection directly? Less available memory in 2.0?
- Prev by Date: Re: App.Config
- Next by Date: Re: Get Signal Strenghts in Windows Vista
- Previous by thread: Re: Can I abandon the lock on .SyncRoot and lock a collection directly? Less available memory in 2.0?
- Next by thread: Garbage Collection
- Index(es):