|
|
|
NavigationPersonal tools |
EWL PerformanceThis website is deprecated!
Please refer and move articles to: http://trac.enlightenment.org/e/wiki/ One particular test case we have made an effort to optimize is the creation, display and movement of a large number of basic widgets, such as labels. The current code used for testing this is referred to as bfb, and is available at: http://ningerso.edevelop.org/files/bfb.c Test with : gcc -o bfb bfb.c -g -Wall `ewl-config --cflags --libs` `etk-config --cflags --libs` `pkg-config --cflags --libs gtk+-2.0` The bfb test case provides comparison tests for EWL, ETK, and GTK (1 or 2) that can be enabled or disabled using the defines at the top. There is also a define to control the number of test items created. The default test case is 1000 items, but this can be increased considerably to get more accurate scaling data. DO NOT set this much higher than 20000 items if you intend to test the ETK case, if you do it will consume as much CPU time as your system makes available to it.
[edit] Test System 1: OS X 2Ghz Core duo w/ 2Gb DDR2
Performance comparison: http://ningerso.edevelop.org/files/ewl_scaling_graphs.pdf
[edit] Test System 2: Ubuntu 6.10 AMD Athlon 64 1 Ghz w/ 1GB
As a further test of this I, locally, changed bfb.c to use buttons instead of labels. (For Ewl I used ewl_button_new(), ewl_button_label_set(). For Etk I used etk_button_new_from_label(). For Gtk I used gtk_button_new_from_label()) [edit] Ewl (with Ewl debug support [the default])
[edit] Ewl (without Ewl debug support [./configure --disable-debug])
[edit] Etk
[edit] Gtk
So, even using something like a button Ewl is still able to push 10k widgets in the same time as Etk does 1k. On my system using buttons instead of labels causes the performance to drop by about half. Note: This button performance is explained by the fact you have doubled the number of widgets to layout. So we're seeing linear scalability inline with the rest of the tests. [edit] Test System 3: Archlinux Pentium-M 1.7GHz w/ 1GB
Did the same as above using buttons. Times are based on output of ps. EWL/ETK current CVS versions as of 03/06/07 and built with -02 -g. GTK version 2.10.9 built with unknown cflags. [edit] Ewl (with debug symbols built in)
[edit] Etk
[edit] Gtk
|