GObject is slow



I've been doing some profiling of GtkFB to find out bottlenecks in the
rasterization code. But looking at the profiles show that rasterization
isn't even at the top. Instead i see a lot of functions from the GObject
type checking code.

Here is the top of a profile on a testgtk run using GtkFB @ 1024x768
16bit. glib+pango+gtk+ is compiled with -O2 -g  and -DG_DISABLE_ASSERT
-DG_DISABLE_CHECKS -DGTK_NO_CHECK_CASTS.

I basically opened a few test in testgtk, scrolled some scrollbars,
clicked some buttons etc. I think i use the following tests: button,
checkbutton, clist, color selector, ctree, cursor, dialog, filesel, gamma
curve, image notebook and styles.

The last two columns are calculated by me and is % time except
g_main_poll.

Function Name                                     calls   func%  func(ms)    f+c%   f+c(ms)    f-p%   f+c-p%

g_main_poll                                       23786  61.970     77463  62.035     77545    n/a 
gdk_fb_draw_drawable_memmove                      32678   6.194      7742   6.194      7742    16.3%  16.3%
g_type_check_flags                              2773957   2.256      2819   4.912      6140    5.9 %  12.9%
g_type_check_instance_cast                      2444663   2.227      2783   8.769     10961    5.9 %  23.1%
LOOKUP_TYPE_NODE                                9563625   2.069      2586   2.069      2586    5.4 %  5.5 %
gdk_fb_draw_drawable_generic                      43009   1.752      2189   3.252      4065    4.6 %  8.6 %
g_type_conforms_to                              2706083   1.700      2125   2.467      3083    4.5 %  6.5 %
type_node_fundamental_info                      2736730   1.440      1800   2.017      2520    3.8 %  5.3 %
call_gmon_start                                 2048582   1.404      1755  83.075    103845    3.7 %  
g_free                                          1686235   0.944      1179   0.944      1179    2.5 %
gdk_fb_drawable_set_pixel_16                    2015218   0.694       867   0.694       867    1.8 %
gdk_region_destroy                               623334   0.610       762   1.260      1574    1.6 %
pango_fb_font_get_glyph_info                     335858   0.599       748   3.685      4606    1.6 %  9.7 %
gdk_fb_drawable_get_pixel                       2124696   0.596       744   0.596       744    1.6 %
pango_fb_font_set_size                           629307   0.582       726   2.792      3489    1.5 %  7.3 %
miRegionOp                                       237907   0.577       720   1.159      1449    1.5 %
gdk_region_rectangle                             583661   0.564       704   1.261      1576    1.5 %
gdk_fb_clip_region                                79361   0.555       693   3.017      3771    1.5 %
pango_fb_font_get_glyph_extents                  287358   0.498       622   6.015      7518    1.3 %  15.8%
list_fonts                                            4   0.459       574   0.461       575    1.2 %
gdk_fb_draw_drawable_3                            95739   0.423       528  11.724     14655    1.1 %  30.8%
gdk_fb_fill_span_simple_16                       280496   0.385       481   0.385       481    1.0 %
g_main_iterate                                    23786   0.363       453  98.822    123529    1.0 %
gdk_fb_fill_spans                                 36867   0.348       434   4.469      5585    0.9 %  11.8%
pango_fb_font_get_type                          1496613   0.323       403   0.323       404    
g_hash_table_lookup_node                         427700   0.306       383   0.422       527 
gdk_fb_drawable_get_color_16                     460285   0.291       363   0.291       363 
find_char                                        238433   0.274       342   1.131      1414 
g_type_instance_conforms_to                      367544   0.270       337   0.975      1218 
gdk_region_intersect                             272430   0.251       313   1.043      1304 
g_hash_table_lookup                              424545   0.209       261   0.626       783 
gtk_signal_emitv                                  37326   0.209       260  80.773    100967 
paint_ring                                           16   0.165       206   0.410       512 


/ Alex





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]