473,387 Members | 1,611 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,387 software developers and data experts.

Collection memory usage in debug build

I'm working on a service for a project that is producing some bizarre
behavior. In debug mode while the service is running, the memory usage
of the service (watching with process explorer) goes from 18MB to 34MB
to 711+MB back down to 51MB then down to 18MB every 1-2 minutes. The
service maintains a List<t,v> of 4400 objects that are being processed
throughout the services life. No secondary objects are created nor
released.

I can understand the 18MB of usage but why on earth does the service
"jump" to over 700MB of memory usage then back down to 50 and then to
18. What could the GC being doing with 700+MB of memory than the
service even uses? In release mode the service consumes 18-25MB on
average over a 12 hour run, it's just in debug that things go insane.

What could possibly be going on?

Note : This didn't happen when we built in VS2003. Since going to
VS2005 and building with generics we get this debug memory nuttyness.

Dec 12 '05 #1
5 2200
Can you give us an example of your code implmentation?

Dec 12 '05 #2
Off the back anytime you are using ANY stream object be sure to wrap it
in a "using" statement. This will insure that the stream is closed and
properly disposed of when you it falls out of scope.

http://msdn.microsoft.com/library/de...pspec_8_13.asp

http://www.c-sharpcorner.com/Code/20...gStatement.asp

Hope this helps.

Dec 13 '05 #3
After blocking out code segments and monitoring I've been able to
whiddle down the part that appears to be the culprit and I've included
the two methods below. CRCGenerationT runs as a thread and calls
GenerateCRC32 around 4-5 times/sec. I didn't create the CRC part I'm
just trying to make it work.

After adding a GC.Collect at the end of the GenerateCRC32 I've brought
memory consumption during debug builds down to ~33MB and I have yet to
see any of those 700+ MB spikes, remove the garbage collection and
bingo, 700-900MB memory spikes.

Here's the code snippet - hopefully it's enough to point out what I
need to rewrite. I'm looking for the code for the Inc and Dec
UpdateFileIOCounter's but all they do from looking at the MSIL is call
[performancecounter].Increment(). Thread wise I dont know if thats
causing an issue.

private void CRCGenerationT() {
int TSleepDuration = GetMSSleepDuration(idleTiming);

while(ProcessFileCRCs) { // thread flag from baseio.cs
if(fileCRCProcessedIndex != fileCollection.Count) {
GenerateCRC32();
++fileCRCProcessedIndex;
Thread.Sleep(TSleepDuration);
}

if(fileCRCProcessedIndex == fileCollection.Count &&
IsScanningComplete)
ProcessFileCRCs = false;
}
this.TCRC32ThreadDequeue = false;
}

private void GenerateCRC32() {
try {
FileStream CRCFileStream = new
FileStream(IFileCol[fileCRCProcessedIndex].FullIOName, FileMode.Open);
StreamReader CRCStreamReader = new StreamReader(CRCFileStream);
crcReader = CRCStreamReader.ReadToEnd();
CRC.Init(CRCTool.CRCCode.CRC32);
byte[] rawBytes =
System.Text.ASCIIEncoding.ASCII.GetBytes(crcReader );
ushort usCrc32 = (ushort)compCRC.crctablefast(rawBytes);

fileCollection[fileCRCProcessedIndex].Hash =
usCrc32.ToString();
IncUpdateFileIOCounter(Counters.Methods.GenCRC32);
}
catch {
fileCollection[fileCRCProcessedIndex].Hash = string.Empty;
DecUpdateFileIOCounter(Counters.Methods.GenCRC32);
}

GC.Collect();
}

Dec 13 '05 #4
Happens to all of us!

Good luck

Dec 13 '05 #5
I'll wrap a using block around it now and run some tests. Thats just
one of those things that after days of staring at code one just kind of
forgets. Thanks.

Dec 13 '05 #6

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

Similar topics

1
by: Rune Froysa | last post by:
I have a fairly large program that uses a number of third-party modules. After a few hours the program eats several 100M of memory. Does Python provide any tools that can help in determining...
3
by: Guy | last post by:
Hi It might take me a little time to explain this but here goes. Firstly I'm not using the latest upto date python releases so my first plan is to try more upto date rels of python and win32...
14
by: Ă–mer KUL | last post by:
hi, i have a garbage collection problem. i have an application writen by vb.net, i am opening a form and in this form there is a big query. when i open the form, it takes 80 mb memory because of...
7
by: Felix E. Klee | last post by:
Hi, why does the memory consumption of the program attached below increase steadily during execution? Shouldn't vector::reserve() allocate one large memory chunk of memory that doesn't change...
3
by: Ian Taite | last post by:
Hello, I'm exploring why one of my C# .NET apps has "high" memory usage, and whether I can reduce the memory usage. I have an app that wakes up and processes text files into a database...
7
by: Derrick | last post by:
I'm loading a boatload of data into a DataSet. The memory usage grows and grows for the app while loading that data. Calling GC.Collect() reduces the consumption slightly. When I minimize the...
9
by: Microsoft News Server | last post by:
Hi, I am currently having a problem with random, intermittent lock ups in my ASP.net application on our production server (99% CPU usage by 3 threads, indefinately). I currently use IIS Debug...
8
by: mike2036 | last post by:
For some reason it appears that garbage collection is releasing an object that I'm still using. The object is declared in a module and instantiated within a class that is in turn instantiated by...
1
by: Daniel | last post by:
i seem to be having memory issues, will deplying a release build instead of a debug build help with memory usage of my .net process?
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: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
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...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

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.