Re: Doubts about the Results oprofile of gtkperf on DirectFB vs TinyX
- From: "Mike Emmel" <mike emmel gmail com>
- To: "rafeeqh shaik" <shaik rafeeqh gmail com>
- Cc: gtk-devel-list gnome org, directfb-dev directfb org
- Subject: Re: Doubts about the Results oprofile of gtkperf on DirectFB vs TinyX
- Date: Wed, 6 Dec 2006 12:15:20 -0800
First you need to show me that your running your server in synchronous
mode or otherwise actually testing Xserver performance on the platform
in question.
As far as I know your simply measuring dispatch performance of the X11 message.
Getting a apples to apples comparision between X11 and Directfb.
Until some shows me they actually know how to do the testing which non
has I see no reason to even consider these bogus tests.
Now if your a core X11 server developer I'd be happy to talk with you
about setting up a comparable test frame work.
Sorry to be a ass but people really don't know what they are doing
here and the X11 developers for obvious reasons are not stepping up to
work out a good test framework.
Mike
On 12/6/06, rafeeqh shaik <shaik rafeeqh gmail com> wrote:
Hi.....
Gtk+ on DirectFB taking much time ( 58 sec for drwaing 100*1000 on DirectFB
, for TinyX it is 1.14 sec when i run gtkperf ) for drawing the lines
compared to gtk+ on TinyX.
My analysis of the code is not complete.
This below is the Oprofile output with event set to GLOBAL_POWER_EVENTS
events (time during which processor is not stopped) spent for drawing line
on gtk+ on top of DirectFB.
gtkperf:
tests.c
-----------------------------------------------------------------------------------------------------------------
:{ /* on_idle_gtkdrawingarea_lines_test
total: 535 64.3803 */
:
: AppData *appdata = NULL;
: appdata = (AppData *) data;
:
: int i = 0;
:
: /* create graphical context */
1 0.1203 : appdata->graphical_context =
: gdk_gc_new
(appdata->drawingarea_drawing->window);
:
: /* drawing lines is so fast that we'll make 1000 in one
loop */
: /* just remember to show this in results! */
331 39.8315 : for (i = 0; i < 1000; i++)
: {
:
7 0.8424 : set_random_drawing_color ();
:
: gint x1 = g_random_int_range (0,
:
appdata->drawingarea_drawing->
111 13.3574 : allocation.width);
: gint x2 = g_random_int_range (0,
:
appdata->drawingarea_drawing->
11 1.3237 : allocation.width );
: gint y1 = g_random_int_range (0,
:
appdata->drawingarea_drawing->
30 3.6101 : allocation.height);
: gint y2 = g_random_int_range (0,
:
appdata->drawingarea_drawing->
17 2.0457 : allocation.height);
:
27 3.2491 : gdk_draw_line
(appdata->drawingarea_drawing->window,
: appdata->graphical_context, x1, y1, x2,
y2);
: }
:void
:set_random_drawing_color ()
10 1.2034 :{ /* set_random_drawing_color total: 188 22.6233 */
:
115 13.8387 : appdata->current_color.red = g_random_int_range (1,
65535);
12 1.4440 : appdata->current_color.green = g_random_int_range (1,
65535);
10 1.2034 : appdata->current_color.blue = g_random_int_range (1,
65535);
:
18 2.1661 : gdk_colormap_alloc_color (gdk_colormap_get_system (),
: &appdata->current_color, FALSE,
TRUE);
7 0.8424 : gdk_gc_set_foreground (appdata->graphical_context,
: &appdata->current_color);
16 1.9254 :}
:
:void
:on_button_clear_clicked (GtkButton * button, gpointer
user_data)
:{
: gtk_text_buffer_set_text (appdata->textview_info_buffer,
"", 0);
:}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
gdk_draw_line function:
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void
gdk_draw_line (GdkDrawable *drawable,
GdkGC *gc,
gint x1,
gint y1,
gint x2,
gint y2)
{
GdkSegment segment;
g_return_if_fail (drawable != NULL);
g_return_if_fail (gc != NULL);
g_return_if_fail (GDK_IS_DRAWABLE (drawable));
g_return_if_fail (GDK_IS_GC (gc));
segment.x1 = x1;
segment.y1 = y1;
segment.x2 = x2;
segment.y2 = y2;
GDK_DRAWABLE_GET_CLASS (drawable)->draw_segments (drawable, gc, &segment,
1);
}
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
For DirectFb gdk_draw_segments which will point to
gdk_directfb_draw_segments and gdk_x11_draw_segments for TinyX.
*) Has any body experienced same fault and do any body know why DirectFB is
taking lot of time while drawing Lines??????
*) Why so many GLOBAL POWER EVENT sample has been taken for the first call
to g_random_int_range ???
--
SHAIK RAFEEQH
IIT DELHI
_______________________________________________
gtk-devel-list mailing list
gtk-devel-list gnome org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]