QT under Windows CE is very slow
I'm making some tests on Windows CE 6, but QT is very slow and many times the application freeze. If I launch the application from within Visual Studio 2008 the application is much more reactive then launching the application directly from the file system. All the actions inside the GUI are very very slow! For example to pass from one menu to another I can take 10 seconds, and to open a dialog about a minute! Inside the app I have only 2 threads and the "while" inside has a "sleep(10)" so the two threads doesn't take to much cpu resources. Why outside Visual Studio debug process my application is so slow ? The CPU is ARM PXA270 420MHz, OS is Windows CE 6.0, Compiler is Visual Studio 2008, QT version is 4.8.2
Best regards to everyone.
For VS, app and Qt library reside in RAM. So move Qt library to \Windows folder would speed up your application. Also, seperate single app into real app and resource file, then place the real app to RAM folder is recommanded way.
For gui thread sleep, use QCoreApplication::processEvents() would be more effective.
Same problem even after your advice
[quote author="william" date="1344922958"]For VS, app and Qt library reside in RAM. So move Qt library to \Windows folder would speed up your application. Also, seperate single app into real app and resource file, then place the real app to RAM folder is recommanded way.
For gui thread sleep, use QCoreApplication::processEvents() would be more effective.[/quote]
I use these methods to solve speed problem. Did you use debug library? It's more slow than release version. If not, try Qt example at first such as examples\animation\animatedtiles.
I also observe a much slower application without debugger attached, happening in both release and debug builds.
Almost like window events are pumping slow or a thread priority issue.
I also need to deploy a Windows CE Qt application...
How did you resolve this issue?
I solved my performance problem by disabling memory paging. I assume the debugger disables paging while debugging.
Add the following option to the linker flags and rebuild Qt libraries:
Major improvement in performance, but make sure you keep a close eye on available RAM.
I had a huge performance improvement when I used link time code generation and speed optimisation in the vs project settings.
@cladden, where are the linker flags that need to be changed before rebuilding Qt?
Here's a snippet of the flags from my qmake.conf:
Note: my firefox web browser word wraps the following code section below, so make sure you're mindful of copying/pasting.
QMAKE_CFLAGS_RELEASE -= -O2
QMAKE_CXXFLAGS_RELEASE -= -O2
QMAKE_CFLAGS_RELEASE += -Os -O1
QMAKE_CXXFLAGS_RELEASE += -Os -O1
QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,6.00 /MACHINE:THUMB /ENTRY:mainACRTStartup /SECTION:.text,!P
QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,6.00 /MACHINE:THUMB /SECTION:.text,!P
QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,6.00 /MACHINE:THUMB /DLL /SAFESEH:NO /SECTION:.text,!P
QMAKE_LIBFLAGS_RELEASE = /LTCG