Hi

I have been experiencing the OOM dialog that CE throws up so I am trying to
diagnose where the leak in my app is (assuming there is one)...

The dialog pops up with the caption "Program Memory is Low". Then there are
options to close a form down or "Convert some Storage Memory to Program
Memory...". I understand this is the OOM component... I would like to handle
this situation in my code rather than have the OS do it not only because
that dialog actually goes beyond our (240x320) screen but because I would
rather reset the unit (or restart the app) if a GC.Collect doesn't help at
that point...

So the questions are:

1. Has anybody else done this before? I understand that I will have remove
the OOM component and then call SetOOMEvent (just changing the registry
values had no effect)... I think I'll pass it a handle and 0s for the
remaining 4 values.. Anybody see a problem with that?

2. Shouldn't I get an OutOfMemoryException when the low memory condition
occurs? Replicating a low memory condition (using the memory slider) always
results in the OOM dialog coming up and never an OutOfMemoryException. Could
it be a case of the dialog popping up before the GC has a chance to collect
the garbage?

Cheers
Daniel

PS This is with CF 1.0 SP2 on own CE 4.2-based device

Re: OOM component, OutOfMemoryException by Daniel

Daniel
Wed May 12 02:10:25 CDT 2004

Just to add to my original questions...

3. Since others have seen the OutOfMemoryException and I am seeing the OOM
dialog, does anybody know the difference between the two?

Here is the relevant link for the OOM component (contains link to the
SetOomEvent API)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcedsn40/html/cmconoomthresholdmigrationissues.asp

Here is the link for the OOM managed exception (there is even a .NETcf
Platform Note)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemoutofmemoryexceptionclasstopic.asp

Cheers
Daniel


"Daniel Moth" <dmoth74@hotmail.com> wrote in message
news:u$7$ZT3NEHA.3052@TK2MSFTNGP12.phx.gbl...
> Hi
>
> I have been experiencing the OOM dialog that CE throws up so I am trying
to
> diagnose where the leak in my app is (assuming there is one)...
>
> The dialog pops up with the caption "Program Memory is Low". Then there
are
> options to close a form down or "Convert some Storage Memory to Program
> Memory...". I understand this is the OOM component... I would like to
handle
> this situation in my code rather than have the OS do it not only because
> that dialog actually goes beyond our (240x320) screen but because I would
> rather reset the unit (or restart the app) if a GC.Collect doesn't help at
> that point...
>
> So the questions are:
>
> 1. Has anybody else done this before? I understand that I will have remove
> the OOM component and then call SetOOMEvent (just changing the registry
> values had no effect)... I think I'll pass it a handle and 0s for the
> remaining 4 values.. Anybody see a problem with that?
>
> 2. Shouldn't I get an OutOfMemoryException when the low memory condition
> occurs? Replicating a low memory condition (using the memory slider)
always
> results in the OOM dialog coming up and never an OutOfMemoryException.
Could
> it be a case of the dialog popping up before the GC has a chance to
collect
> the garbage?
>
> Cheers
> Daniel
>
> PS This is with CF 1.0 SP2 on own CE 4.2-based device
>
>



Re: OOM component, OutOfMemoryException by Daniel

Daniel
Thu May 13 04:38:07 CDT 2004

Since my last post and after numerous tests I have occassionally observed
the managed OutOfMemoryException rather than the OS OOM dialog (!) during
identical test case scenarios. This seems very random and if I had to give a
statistic I'd say 1 out of 50 times you'll get the exception isntead of the
dialog... Somebody must know the difference between when one is shown
instead of the other so please enlighten us... or is it random in reality?

In case anybody thinks this is academic research it isn't. I have a real app
that suffers from the OOM dialog (never an OutOfMemoryException) when in
reality there is no apparent memory leak in the app... I am trying to narrow
this down to a small reproducable case...

Cheers
Daniel


"Daniel Moth" <dmoth74@hotmail.com> wrote in message
news:%23BVYjB$NEHA.3476@TK2MSFTNGP09.phx.gbl...
> Just to add to my original questions...
>
> 3. Since others have seen the OutOfMemoryException and I am seeing the OOM
> dialog, does anybody know the difference between the two?
>
> Here is the relevant link for the OOM component (contains link to the
> SetOomEvent API)
>
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcedsn40/html/cmconoomthresholdmigrationissues.asp
>
> Here is the link for the OOM managed exception (there is even a .NETcf
> Platform Note)
>
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemoutofmemoryexceptionclasstopic.asp
>
> Cheers
> Daniel
>
>
> "Daniel Moth" <dmoth74@hotmail.com> wrote in message
> news:u$7$ZT3NEHA.3052@TK2MSFTNGP12.phx.gbl...
> > Hi
> >
> > I have been experiencing the OOM dialog that CE throws up so I am trying
> to
> > diagnose where the leak in my app is (assuming there is one)...
> >
> > The dialog pops up with the caption "Program Memory is Low". Then there
> are
> > options to close a form down or "Convert some Storage Memory to Program
> > Memory...". I understand this is the OOM component... I would like to
> handle
> > this situation in my code rather than have the OS do it not only because
> > that dialog actually goes beyond our (240x320) screen but because I
would
> > rather reset the unit (or restart the app) if a GC.Collect doesn't help
at
> > that point...
> >
> > So the questions are:
> >
> > 1. Has anybody else done this before? I understand that I will have
remove
> > the OOM component and then call SetOOMEvent (just changing the registry
> > values had no effect)... I think I'll pass it a handle and 0s for the
> > remaining 4 values.. Anybody see a problem with that?
> >
> > 2. Shouldn't I get an OutOfMemoryException when the low memory condition
> > occurs? Replicating a low memory condition (using the memory slider)
> always
> > results in the OOM dialog coming up and never an OutOfMemoryException.
> Could
> > it be a case of the dialog popping up before the GC has a chance to
> collect
> > the garbage?
> >
> > Cheers
> > Daniel
> >
> > PS This is with CF 1.0 SP2 on own CE 4.2-based device
> >
> >
>
>




Re: OOM component, OutOfMemoryException by Daniel

Daniel
Tue Jun 01 12:53:26 CDT 2004

Removing the OOM component from the image fixes this (without a need to call
SetOomEvent)... i.e. without the OOM component, when the app uses more
memory than what it should, we see the OutOfMemoryException... Shame the CLR
does not have a tighter cooperation with the OOM component...

Cheers
Daniel


"Daniel Moth" <dmoth74@hotmail.com> wrote in message
news:eoRfx4MOEHA.1388@TK2MSFTNGP09.phx.gbl...
> Since my last post and after numerous tests I have occassionally observed
> the managed OutOfMemoryException rather than the OS OOM dialog (!) during
> identical test case scenarios. This seems very random and if I had to give
a
> statistic I'd say 1 out of 50 times you'll get the exception isntead of
the
> dialog... Somebody must know the difference between when one is shown
> instead of the other so please enlighten us... or is it random in reality?
>
> In case anybody thinks this is academic research it isn't. I have a real
app
> that suffers from the OOM dialog (never an OutOfMemoryException) when in
> reality there is no apparent memory leak in the app... I am trying to
narrow
> this down to a small reproducable case...
>
> Cheers
> Daniel
>
>
> "Daniel Moth" <dmoth74@hotmail.com> wrote in message
> news:%23BVYjB$NEHA.3476@TK2MSFTNGP09.phx.gbl...
> > Just to add to my original questions...
> >
> > 3. Since others have seen the OutOfMemoryException and I am seeing the
OOM
> > dialog, does anybody know the difference between the two?
> >
> > Here is the relevant link for the OOM component (contains link to the
> > SetOomEvent API)
> >
>
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcedsn40/html/cmconoomthresholdmigrationissues.asp
> >
> > Here is the link for the OOM managed exception (there is even a .NETcf
> > Platform Note)
> >
>
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemoutofmemoryexceptionclasstopic.asp
> >
> > Cheers
> > Daniel
> >
> >
> > "Daniel Moth" <dmoth74@hotmail.com> wrote in message
> > news:u$7$ZT3NEHA.3052@TK2MSFTNGP12.phx.gbl...
> > > Hi
> > >
> > > I have been experiencing the OOM dialog that CE throws up so I am
trying
> > to
> > > diagnose where the leak in my app is (assuming there is one)...
> > >
> > > The dialog pops up with the caption "Program Memory is Low". Then
there
> > are
> > > options to close a form down or "Convert some Storage Memory to
Program
> > > Memory...". I understand this is the OOM component... I would like to
> > handle
> > > this situation in my code rather than have the OS do it not only
because
> > > that dialog actually goes beyond our (240x320) screen but because I
> would
> > > rather reset the unit (or restart the app) if a GC.Collect doesn't
help
> at
> > > that point...
> > >
> > > So the questions are:
> > >
> > > 1. Has anybody else done this before? I understand that I will have
> remove
> > > the OOM component and then call SetOOMEvent (just changing the
registry
> > > values had no effect)... I think I'll pass it a handle and 0s for the
> > > remaining 4 values.. Anybody see a problem with that?
> > >
> > > 2. Shouldn't I get an OutOfMemoryException when the low memory
condition
> > > occurs? Replicating a low memory condition (using the memory slider)
> > always
> > > results in the OOM dialog coming up and never an OutOfMemoryException.
> > Could
> > > it be a case of the dialog popping up before the GC has a chance to
> > collect
> > > the garbage?
> > >
> > > Cheers
> > > Daniel
> > >
> > > PS This is with CF 1.0 SP2 on own CE 4.2-based device
> > >
> > >
> >
> >
>
>
>