Re: Doubts about the Results oprofile of gtkperf on DirectFB vs TinyX



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]