OutOfMemoryException

Posted by Andrew on Stack Overflow See other posts from Stack Overflow or by Andrew
Published on 2010-04-07T08:02:23Z Indexed on 2010/04/07 8:03 UTC
Read the original article Hit count: 385

I have an application that is pretty memory hungry. It holds a large amount of data in some big arrays.

I have recently been noticing the occasional OutOfMemoryException. These OutOfMemoryExceptions are occurring long before my application (ASP.Net) has used up the 800mb available to it. I have track the issue down to the area of code where the array is resized. The array contains a structure that is 74bytes in size. (I know that you shouldn't create struct's that are bigger than 16bytes), but this application is a port from a Vb6 application). I have tried changing the struct to a class and this appears to have fixed the problem for now.

I think the reason that changing to a class solves the problem has to do with the fact that when using a struct and the array is resized, a segment of memory that is large enough to store the new array needs to be reserved (e.g. (currentArraySize + increaseBySize)*74) cannot be found. This leads to the OutOfMemoryException.

This isn't the case with a class as each element of the array only needs 8bytes to store a pointer to the new object.

Is my thinking correct here?

© Stack Overflow or respective owner

Related posts about ASP.NET

Related posts about outofmemoryexception