Re: Performance issues on a CE-app that was ported from Win32



After mapping the processes more thoroughly I've counted that there are
actually a total of seven processes constantly running, with others
starting
up on request. Of the residual processes, only 4 play a major part when a
message is being received:

That's still too many, IMO. There's no reason this needs to be process
compartmentalized, and doing so requires context switching for the scheduler
to run the functions in each application.

handle an incoming message. I've tried monitoring what process might eat
up
the CPU cycles with the performance monitor, but the monitor doesn't seem
all
that accurate. I've set it up to monitor all of the seven processes, but
no
matter how many messages I send, even the total processor time for many of
the processes is still zero...now I know that is cannot be correct, so
either
the CPU time used by those processes are actually too small to register,
or
it doesn't get registered at all for some reason. Does anyone have any
suggestions for how I would go about monitoring the processes more
accurately?

The Remote Profiler would be good, as kernel tracker would definitely give
you a sense of who's doing what.

Regarding the IPC mechanism: all IPC-messages are actually received/sent
with ReadFile/WriteFile-calls to a driver. Now, this actually makes sense
in
the context of which it is used on the desktop version (you'll just have
to
trust me on this =), but the more I think about it, it's an absolutely
useless thing to do in the CE-version. None of the reasons that was valid
on
the desktop-version really applies here. So this is certainly a thing I'll
have to look more closely at. In that regard, what IPC-mechanism would be
the
best/fastest to use on Windows CE (for C/C++)?

A point to point message queue (see CreateMsgQueue) or a memory-mapped-file
would give you good perf, assuming you need all of these processes.

Yup, the database is on the flash drive. Both your suggestions would be
interesting to try. I don't know how much time it would take to move the
database into RAM though, but I'll look into it.

Far more than just "interesting". If you're writing to Flash, you can't
compare that to RAM or even a rotating-media hard drive. Flash is orders of
magnitude slower and there's no way to change that without bending some laws
of physics.

OK, so to summarize, what I'm wondering right now is:
* Does anyone have any suggestions for how I would go about monitoring the
processes more accurately than with the Process Monitor bundled with the
Platform Builder?

Remote Profiler and/or Kernel Tracker

* What IPC-mechanism would be the best/fastest to use on Windows CE (for
C/C++)?

P2P queue or MMF.


--

Chris Tacke, Embedded MVP
OpenNETCF Consulting
Giving back to the embedded community
http://community.OpenNETCF.com


.



Relevant Pages

  • Re: Ways of programming a TMS470 (TI microcontroller with 256k flash)?
    ... it just lets you load code into RAM for testing. ... This monitor has the capability to read in new ... programs from the serial or USB port into RAM, then program the flash. ... I elected to us Moto S-record format, but you could use any number ...
    (comp.arch.embedded)
  • Re: Stop Folder Redirection
    ... MS monitor and respond to legitimate queries, cancel a bit of SPAM. ... If the question is a research project, then I should like to know if there is a 19.5 story building within reach and if there is any reason, other than an academic curiosity behind the question. ... PST files shouldn't be in use at all on your network if you have ... If the moderator wishes to expel me from this group, ...
    (microsoft.public.windows.server.sbs)
  • Re: Polarizing Eyeglasses
    ... > flat panel displays showing arrivals and baggage lanes were completely dark ... > for some reason. ... The culprit was my clip-on polarizing pair, ... I've used an expensive Sun 19" LCD as an external monitor on my Mac ...
    (sci.optics)
  • Re: Computer wont shut down and other problems
    ... nite; the monitor had my email opened and when I attempted to end the task ... reason it disturb some program. ...
    (microsoft.public.windowsxp.newusers)
  • Re: Mini vs eMac?
    ... My #1 reason to have to junk iMac's is video failure. ... monitor failures are not rare). ... the Mini itself might get replaced with something a ...
    (comp.sys.mac.misc)

Loading