David Thornley
unread,Jan 20, 2012, 1:23:41 AM1/20/12You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
Hi Everyone,
I have recently working on a background application that gets compiled
as quite a large dll (~1Mb) with several dependent dll's totally
around 2.2Mb (all up around 3.2Mb). The DLL exposes a CE service
interface (similar to a stream driver) and is invoked by a very simple
custom console application that performs a LoadLibrary() and invokes
the service entry points.
What I noticed was that the machine (an OMAP 3503 running CE6.0)
started performing erratically (horribly slow with random performance
degradation) in a LOB application running in another process. Through
a process of elimination I reduced the issue down to simply calling
LoadLibrary on the service DLL and not invoking any of the entry
points in the DLL itself (so the service is not running)
Now here is the strange thing, as soon as I use the CE6.0 PB remote
performance monitor and add probe on for ‘CE Process Statistics’, ‘%
Process Time’ for ‘_Total’ the performance of the device dramatically
stabilises and the underlying random degradation disappears.
I have since worked around the problem by removing the service
interface and compiling the same project as an executable with a stock
mainACRTStartup entry point. So the simple act of loading the project
as a DLL causes the operating system to consistently perform poorly.
Does anyone have any idea what is going on? The key here is that the
operating system returns to expected behaviour once the remote
performance monitor is enabled, why would this be the case?
Looking forward to any comments/thoughts.
Regards,
David