|
Looking at Ross's suggestion and your profile data Padraig, does look
as if something like the "scrollbar-updated signal is causing the a11y
layer to refetch the contents of the terminal several times on every
output" So Kjartan's patch replaces the following g_return_if_fail macros in vteaccess.c with g_asserts allowing them to be compiled out which is great, but I fear the % of cpu time in the function they take up will be small relative to the time taken to update the snap_shot text :( But certainly worth trying. Suspect we'll get most mileage out of looking how to batch the scroll events, be clever on the type of redraw we are doing ... JR /vte-0.11.15/src/vteaccess.c 249 static void 250 vte_terminal_accessible_update_private_data_if_needed(AtkObject *text, 251 char **old, glong *olen) 252 { : 259 260 g_return_if_fail(VTE_IS_TERMINAL_ACCESSIBLE(text)); 261 262 /* Retrieve the private data structure. It must already exist. */ 263 priv = g_object_get_data(G_OBJECT(text), 264 VTE_TERMINAL_ACCESSIBLE_PRIVATE_DATA); 265 g_return_if_fail(priv != NULL); 266 267 /* If nothing's changed, just return immediately. */ 268 if ((priv->snapshot_contents_invalid == FALSE) && 269 (priv->snapshot_caret_invalid == FALSE)) { 270 if (old) { 271 if (priv->snapshot_text) { 272 *old = g_malloc(priv->snapshot_text->len + 1); 273 memcpy(*old, 274 priv->snapshot_text->str, 275 priv->snapshot_text->len); Padraig O'Briain wrote: I have looked at profile data when accessibility is enabled and most of the time is spent in vte_terminal_accessible_update_private_data_if_needed. I need to apply the patch to replace g_return_if_fail calls with g_assert calls and see what improvement that makes. Padraig On Tue, 2005-11-22 at 12:16 +0000, John Rice wrote: |
_______________________________________________ desktop-devel-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/desktop-devel-list
