Does .NET correctly handle memory paging with many small objects? -
I have several times developed apps with very large branches or associated structures of small figures (& lt; 1kb each) Are either 1) just building objects or 2) creating and using them.
In both instances, the application either stops completely or completely. Understand that after the physical RAM is over, the endorsement should take place, and, if it is very slow, the program should continue to work. In particular, I am not trying to allocate large objects, nor are I using the array (or list) of 2G objects (I'm not sure this limit still applies).
I have written a written test program which stores continuously and stores 1GB of memory. Since NAT seemed to be delayed in allocation, I also filled the blocks with the data. I came to know that the .NET was used correctly once the RAM was used, and the program slowed down, but never crashed or OOM-ed was not done.
So, why .NET has trouble with a problem, lots of small things? Is this special for my configuration?
Paging is a feature of OS, so it does not do anything or does not
A common source of OM is memory fragmentation, remember that you do not actually assign anything in a managed application. You just create objects that runtime allocates the memory required to store those objects. These allocation segments are made in named clauses. They are allocated in the form of connective memory fragmentation can lead to a situation where there is not enough closest memory to respect the allocation of a new segment. If one segment can not be allocated, then the otum runs out. I
The second common source of ohms is location exhaustion. A common misconception is that unless sufficient memory is available on the system, OOM should not be there. This is not the case for 32 bit apps. They have an address space of 2 GB (or 4 GB if 64 bit and large memory address is known). Whatever the amount except the OOM, no matter how much memory the system may have. Since your question has been x64 tagged, I am assuming that it is a 64 bit application, in which case address exhaustion is probably not the case.
As you stand, there is enough information in your question why you see the OOM exception. Are you storing those small items in the list or other structure? If so, then you can use very large arrays, because many of the collection squares are implemented using the arrays.
Comments
Post a Comment