Skip to content

Gtkperf for gtk3. The original gtkperf is out of date, orphaned, and just for gtk2.

License

Notifications You must be signed in to change notification settings

jknockel/gtkperf-for-gtk3

 
 

Repository files navigation

GtkPerf
==========

What?
GtkPerf is an application designed to test GTK+ performance. The point is to 
create common testing platform to run predefined GTK+ widgets (opening 
comboboxes, toggling buttons, scrolling text etc.) and this way define the 
speed of device/platform.

Why?
I know that bencmarking tools (including GtkPerf) can be fooled and don't give 
real-life results. Yet, I belive that GtkPerf can be helpful to solve for 
example this kind of things:

 * How fast is my software platform compared to others?
 * How fast is my hardware compared to others?
 * How fast/slow GTK+ is with different themes?
 * Is there any notably slow widgets when using my GTK+ theme(engine)?
 * How much does GTK+ performance increase when moving e.g. from GTK+ 2.4 -> 2.6?
 * How much does GTK+/GDK perfomance increase when updating X-server?
 * Can GTK+ be efficiently used in embedded devices?

Tests
=====

The tests are separate from each other with the same main logic: Making single 
test operation (opening combo box, drawing n circles, etc.) and waiting for that
to get processed are returned to g_idle. So every test is jumping between test 
function and g_idle as fast as possible. 

These tests are provided (in 0.30).

GtkEntry (on_idle_gtkentry_test)
-----
Switches between "Test String" and "Longer test string" texts for [count] times.


GtkComboBox (on_idle_gtkcombobox_test)
-----
GtkComboBox contains 10 entrys "Selection 1"..."Selection 10". This test opens
and closes GtkComboBox [count] times while selecting next entry.


GtkComboBoxEntry (on_idle_gtkcomboboxentry_test)
-----
GtkComboBoxEntry contains 10 entrys "Selection 1"..."Selection 10". This test 
opens and closes GtkComboBoxEntry [count] times while selecting next entry.


GtkSpinButton (on_idle_gtkspinbutton_test)
-----
GtkSpinButton value is increased with one [count] times. When 1000 is reached,
value is changed back to 0.


GtkProgressBar (on_idle_gtkprogressbar_test)
-----
GtkProgressBar is increased with 1% [count] times. Whenever bar gets full,
its value is set to 0.


GtkToggleButton (on_idle_gtktogglebutton_test)
-----
GtkToggleButton state is toggled between on/off [count] times.


GtkCheckButton (on_idle_gtkcheckbutton_test)
-----
GtkCheckButton state is toggled between on/off [count] times.


GtkRadioButton (on_idle_gtkradiobutton_test)
-----
Two GtkRadioButtons inside same group are witched to be selected alternately
[count] times.


GtkTextView - Add text (on_idle_gtktextview_addtext_test)
-----
Text "Future is Open. " is appended to GtkTextView [count] times.


GtkTextView - Scroll (on_idle_gtktextview_scroll_test)
-----
Scrolls the text added in earlier test GTK_SCROLL_STEP_FORWARD and when end is
reached GTK_SCROLL_STEP_BACKWARD for [count] times.


GtkDrawingArea - Lines (on_idle_gtkdrawingarea_lines_test)
-----
Draws random size and color lines to GtkDrawingArea for 1000*[count] times.


GtkDrawingArea - Circles (on_idle_gtkdrawingarea_circles_test)
-----
Draws random size and color circles to GtkDrawingArea for 1000*[count] times.


GtkDrawingArea - Text (on_idle_gtkdrawingarea_text_test)
-----
Draws random size and color "Future is Open." strings with PangoLayout to 
GtkDrawingArea for 100*[count] times. Font used is "Sans Bold 16".


GtkDrawingArea - Pixbuf (on_idle_gtkdrawingarea_pixbufs_test)
-----
Draws Duck.png to random place in GtkDrawingArea for 10*[count] times.



maemo
=====

To make GtkPerf Hildonized" (see http://www.maemo.org) and make it work nicelu in Nokia 770, do this:

1) Enable this line in configure.in:
#MAEMO_MODULES="libosso hildon-base-lib hildon-lgpl hildon-libs"

2) Enable this line in appdata.h:
//#define HILDONIZED

Now compile normally and GtkPerf uses maemo-specific changes in code!




About

Gtkperf for gtk3. The original gtkperf is out of date, orphaned, and just for gtk2.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • OpenEdge ABL 54.6%
  • C 37.4%
  • Shell 4.8%
  • Makefile 1.8%
  • Yacc 1.4%