B
Brandon
Sorry for the long post, but I need to provide background for questions that
I know will be asked.
I have been hunting for this information for some time, and I'm just not
sure the information is available publicly, so I thought I'd try my luck here.
We have a fairly sophisticated group of in-house applications and utilities,
for the most part all C#, running on WM2K3 devices. We have done our best to
minimize the number of long-running service-type processes...there's one to
manage connectivity/least cost routing, one that locks down the shell,
providing the user access to only what is necessary, etc. In total there 4
or 5 of our processes that should be running at all times, then there's the
application that the user is using. Total process count including everything
that CE starts up is about 21-22.
We have this issue where one of the service-type processes frequently
recieves WM_HIBERNATE and WM_CLOSE messages from the OS...we handle this by
gracefully shutting down, but it's got to be running, so one of our other
service-type processes is currently watching it, and will restart it.
Now I know that when the OS runs short on resources, it uses WM_HIBERNATE to
kindly ask "valid applications" to free up what they can, and then starts
using WM_CLOSE if it isn't satisfied with the result...I was curious if
anyone has any information about the algorithm/thresholds it uses to decide
this is all necessary. It seems that process count is a factor, but we
haven't hit the limit... I know free program memory is a factor, but a call
to find out how much free memory is available says there's 20MB... Is
virtual memory within a process a factor (if so, can anyone suggest tools for
taking a look at VM?)? What else?
Thanks in advance for any information you might be able to provide.
I know will be asked.
I have been hunting for this information for some time, and I'm just not
sure the information is available publicly, so I thought I'd try my luck here.
We have a fairly sophisticated group of in-house applications and utilities,
for the most part all C#, running on WM2K3 devices. We have done our best to
minimize the number of long-running service-type processes...there's one to
manage connectivity/least cost routing, one that locks down the shell,
providing the user access to only what is necessary, etc. In total there 4
or 5 of our processes that should be running at all times, then there's the
application that the user is using. Total process count including everything
that CE starts up is about 21-22.
We have this issue where one of the service-type processes frequently
recieves WM_HIBERNATE and WM_CLOSE messages from the OS...we handle this by
gracefully shutting down, but it's got to be running, so one of our other
service-type processes is currently watching it, and will restart it.
Now I know that when the OS runs short on resources, it uses WM_HIBERNATE to
kindly ask "valid applications" to free up what they can, and then starts
using WM_CLOSE if it isn't satisfied with the result...I was curious if
anyone has any information about the algorithm/thresholds it uses to decide
this is all necessary. It seems that process count is a factor, but we
haven't hit the limit... I know free program memory is a factor, but a call
to find out how much free memory is available says there's 20MB... Is
virtual memory within a process a factor (if so, can anyone suggest tools for
taking a look at VM?)? What else?
Thanks in advance for any information you might be able to provide.