Opened 4 years ago

Closed 4 years ago

#12631 closed defect (fixed)

Optimize g_typelib_get_dir_entry_by_gtype

Reported by: dsd Owned by:
Priority: normal Milestone: 13.2.0
Component: distro Version: not specified
Keywords: Cc:
Blocked By: Blocking:
Deployments affected: Action Needed: test in build
Verified: no

Description (last modified by dsd)

g_typelib_get_dir_entry_by_gtype in libgobject-introspection occupies the CPU for about 9% of the time during Sugar startup on XO-1 (around 3 seconds), tested on 13.2.0 build 1.

We should see if we can optimize this or make it so that it is not called as often.

Change History (7)

comment:1 Changed 4 years ago by dsd

  • Owner pbrobinson deleted

comment:2 Changed 4 years ago by dsd

  • Description modified (diff)
  • Summary changed from Optimize g_typelib_get_dir_entry to Optimize g_typelib_get_dir_entry_by_gtype

comment:3 Changed 4 years ago by dsd

This pygobject optimization kills a load of useless calls to g_typelib_get_dir_entry_by_gtype:

And this gobject-introspection optimization makes g_typelib_get_dir_entry_by_gtype fall even further off the map of what perf shows as CPU-eaters:

Now Sugar starts approximately:

  • 5 seconds faster on XO-1
  • 3 seconds faster on XO-1.5
  • 3 seconds faster on XO-1.75
  • 1.5 seconds faster on XO-4

and it will also represent a small performance improvement of activity startup and general usage.

comment:4 Changed 4 years ago by dsd

The gobject-introspection annotation is now upstream and shipped in gobject-introspection-1.34.2-1.fc18.olpc1. This is the least significant of the two optimizations.

comment:5 Changed 4 years ago by dsd

  • Action Needed changed from never set to add to build
  • Milestone changed from Future Release to 13.2.0

Fixed in pygobject3-3.4.2-6.fc18.olpc1

comment:6 Changed 4 years ago by dsd

  • Action Needed changed from add to build to test in build

Test in 13.2.0 build 5

comment:7 Changed 4 years ago by dsd

  • Resolution set to fixed
  • Status changed from new to closed

This is shipped in 13.2.0 build 5 and no problems have been reported.

Note: See TracTickets for help on using tickets.