I am experiencing a big difference in performances between a Windows
CE emulator image generated by me as part of an SDK and the emulator
images provided with the Windows Mobile 6.0 SDK.
To be more specific, the problem is related to the startup time of a
.NET 2.0 application. The application loads many bitmaps at startup
and has a startup time of around a minute in release and two or more
minutes in debug on my emulator image. That startup time decreases
a bit when I include in the image CF 3.5 instead of 2.0 (the
application is still CF 2.0 based) bu it's still twice or more of
the amount required to start the same application inside the WM6
emulator, provided with the Windows Mobile 6 SDK.
The overral performances of the application inside the WM os image
seem to be better than those on my own OS image, but the difference
in startup times is quite noticeable.
Both OS images use the same amount of memory inside the emulator
(256MB) and the amount of free memory before the application is
started is the same on both emulator instances and the application
allocates the same amount of memory etc. Also the screen resolution
is the same on both emulator istances (800x480).
My OS image include the .NET framework dependencies, the standard
shell and not much more. No services or other applications that may
"eat" CPU time in background and no KITL or debugging support.
I suppose that the WM6 image runs some more drivers in background
(for phone emulation, at least) and that the WM shell is, at least,
comparable to the standard shell in terms of CPU and memory usage.
My OS image is based on CE 6, while the WM6 image is 5.something,
but the new kernel should improve performances... and not having the
limit of the 32MB slot may allow the .NET application to allocate
more memory without requiring a garbage collector compacting
operation, so I expect better performances on my OS image than on
the WM6 emulator or, at least, the same level of performances...
The application executable is installed in \Program Files so it's
loaded from RAM on my OS image and does not access external data
files etc. It loads some DLLs (most of them are .NET managed code
and native code interaction is limited to some API calls).
There are some "tweaks" that can be used to enhance device emulator
performances? I used the device emulator BSP provide with CE 6
Platform Builder. There are other releases of that BSP available?
Most of my customers still use CE 5, so I don't have a direct
comparison of the same application running on the same device on the
two OS releases. Someone else noticed big performance issues using
the .NET framework on CE 6?
--
Valter Minute
www.fortechembeddedlabs.it
Training, support and development for Windows CE
(the reply address of this message is invalid)