GUI Perfromance puzzle: Qt layers vs X11

Hello folks,

I am evaluating the performance of the ROOT with Qt layer ( root.bnl.gov ) vs. the regular ROOT with X11 layer (UNIX)

Using the well-known $ROOTSYS/tutorials/benchmarks.C ROOT macro I got on my machine some figures as follows, (This is exactly the same machine and exactly the same ROOT shared libraries. The only difference is the ROOT resource file)

  1. ALL QT GUI layers On - 540 ROOTMARKS
  2. Lower level QT GUI layers On - 340 ROOTMARKS
  3. No Qt layer, X11 layer On - 104 ROOTMARKS.
    (This is just the well-known old ROOT)

I would like to understand what a cause of the difference is and need some assistance from the ROOT community.

I would appreciate a lot if people could install Qt layer and run the root benchmarks test 3 times and send me the result to compile.

Please add to your report the extra information about your X-client/X-server connection.
Is it

  1. “local desktop” - which one for example KDE. GHOME
  2. X-terminal / eXceed/ other X-terminal emulator on Windows platform
  3. Your network bandwidth.

Tell me what your Qt version is and whether it was built with XFT font support.
(if you know of course)

Please feel free yourself to send me any other tests you may have performed.
(and BUGs theere should be a lot of them)
Please don’t’ pollute the “roottalk”.
Send me your report directly fine@bnl.gov
I’ll compile them and present the summary.

To install ROOT with Qt layer or to add Qt layer to your existent ROOT installation you can use the script
root.bnl.gov/QtRoot/root/root.di … lQtRoot.sh
or just try to follow the guidance
root.bnl.gov/QtRoot/How2Install4Unix.html

To test create 3 directories.

mkdir rootqt
mkdir rootqtgui
mkdir rootx11

Configure each directory to use the different GUI layers
root.bnl.gov/QtRoot/QtRoot.html#switch
and copy there the tutorials directory
for example

cd rootqt
lndir $ROOTSYS/tutorials/ .
ln -s $ROOTSYS/root.diff/config/unix.rootrcqtroot
root benchmarks.C

to tune only the low level Qt layer.

cd rootqtgui
lndir $ROOTSYS/tutorials/ .
ln -s $ROOTSYS/root.diff/config/unix.rootrc
root benchmarks.C

to make all Qt layers ON.

cd rootqtgui
lndir $ROOTSYS/tutorials/ .
root benchmarks.C

to run the standard ROOT with no Qt at all.