Some questions about performance optimization related to GUI framework on Genode

Norman Feske norman.feske at ...1...
Thu Mar 27 14:45:22 CET 2014

Hello Shuo Wang,

thank you for your interest in Genode! Please excuse the delayed
response. I was offline for a few days.

>    The most serious problem I meet now is that system is very slow when
> running applications we made before, so I doubt whether this is related
> to GUI framework. I plan to transplant DoPE to Genode, in order to make
> a comparation between DoPE and Qt. But I am worried about reasonability
> about my design of experiments, so I need help from the developers.

DOpE is definitely faster than Qt as it is even usable on
low-performance devices such as FPGA softcores, e.g., the Milkymist SoC
[1]. So for those kind of special-purpose appliances, DOpE still seems
to be attractive. However, in the context of the Genode OS framework, I
would advise against using DOpE. I would rather spend the energy on
investigating the performance problems you observe with Qt.


The reason for my stance is that DOpE lacks a lot of features that are
universally expected from modern GUI toolkits (e.g., support for
theming, international characters, common widget types like menus).
Furthermore, it has been practically unmaintained for several years now.
If you still like to go forward with experimenting with DOpE on Genode,
I can possibly assist you. I already ported DOpE to an early version of
Genode in 2008 and could possibly revive the port. However, I am not
committed to actively maintain or even improve it.

As I said above, I would rather try to find out why Qt performs so badly
for you. This raises the following questions:

* Which version of Genode are you using?

* Are you using Qt4 or Qt5? (If you are still using Qt4, I would
  recommend you to switch to Qt5)

* Which Genode base platform are you using?

* Have you tried to run your GUI application on base-linux? If yes,
  have you compared its performance to the same application compiled for
  native Linux w/o Genode?

* On base-linux, you could use normal Linux profiling tools such as
  oprofile to find out where the CPU time goes.

* Can you make a Git branch with your application publicly available
  (e.g., on Github) so that I could give it a try? By being able
  to reproduce the problem, I could help you much better with
  investigating the issue.

Best regards

Dr.-Ing. Norman Feske
Genode Labs ·

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth

More information about the users mailing list