IMPORTANT: This article is being preserved for historical purposes and likely no longer reflects the state of AT-SPI over D-Bus.

GOK profiling

GOK was run with a modified version of libspi. The ORBit stub functions were modified to log each call out to a file, along with the name of the method call. While running the GOK tests a modified version of the AT-SPI registry daemon was also used. All AT-SPI method calls, made by the daemon, were logged.

Tests were run manually, with GOK set up in dwell selection, in non-core pointer mode. A few tests were followed, which were based on a selection of GOK tests from Sun. Gratefully received from Li Yuan.

The graphs show the number of calls made per 100ms. They show the top 10 intervals of 100ms in terms of number of calls made.

Edit text file

  • Open G-Edit.
  • Make changes to text file.
  • Save to home directory.
  • Close G-Edit.

GOK results

Frequency of method calls

Accessible_getRole

33.3%

StateSet_getStates

14.5%

Accessible_getState

14.5%

Accessible_getChildAtIndex

13.0%

Accessible_get_childCount

11.8%

Accessible_getRelationSet

4.2%

Accessible_get_name

3.7%

EventListener_notifyEvent

1.5%

Accessible_get_parent

1.4%

Accessible_get_description

0.9%

Text_getTextAtOffset

0.5%

Registry_getDeviceEventController

0.1%

DeviceEventController_generateMouseEvent

0.1%

Table_get_nColumns

0.0%

Table_get_caption

0.0%

Table_getColumnDescription

0.0%

Table_getColumnHeader

0.0%

Action_getName

0.0%

Relation_getTarget

0.0%

Relation_getNTargets

0.0%

Relation_getRelationType

0.0%

Accessible_getRoleName

0.0%

Action_get_nActions

0.0%

Registry_registerGlobalEventListener

0.0%

Registry_deregisterGlobalEventListenerAll

0.0%

DeviceEventController_generateKeyboardEvent

0.0%

Action_doAction

0.0%

DeviceEventController_registerDeviceEventListener

0.0%

DeviceEventController_deregisterDeviceEventListener

0.0%

Registry_getDesktop

0.0%

Registry_registerApplication

0.0%

Registry_getDesktopCount

0.0%

Highest calls per 100ms = 753

Registry daemon results

Frequency of method calls

EventListener_notifyEvent

99.1%

DeviceEventListener_notifyEvent

0.5%

Application_set_id

0.2%

Accessible_getChildAtIndex

0.2%

Highest calls per 100ms = 203

Copy a file

  • Open documents folder.
  • Select 'copy' from file menu.
  • Change directory and paste.
  • Repeat.
  • Close Nautilus.

GOK results

Frequency of method calls

Accessible_getRole

35.4%

StateSet_getStates

14.4%

Accessible_getState

14.4%

Accessible_getChildAtIndex

12.4%

Accessible_get_childCount

11.4%

EventListener_notifyEvent

3.8%

Accessible_get_name

3.1%

Accessible_getRelationSet

2.1%

Accessible_get_parent

1.3%

Accessible_get_description

0.5%

Text_getTextAtOffset

0.3%

Registry_getDeviceEventController

0.2%

DeviceEventController_generateKeyboardEvent

0.2%

Action_getName

0.1%

Action_get_nActions

0.0%

EditableText_insertText

0.0%

Relation_getTarget

0.0%

Relation_getNTargets

0.0%

Relation_getRelationType

0.0%

Text_get_caretOffset

0.0%

Registry_registerGlobalEventListener

0.0%

Registry_deregisterGlobalEventListenerAll

0.0%

Action_doAction

0.0%

DeviceEventController_registerDeviceEventListener

0.0%

DeviceEventController_deregisterDeviceEventListener

0.0%

Registry_getDesktop

0.0%

Registry_registerApplication

0.0%

Registry_getDesktopCount

0.0%

Highest calls per 100ms = 709

Registry daemon results

Frequency of method calls

EventListener_notifyEvent

99.6%

Application_set_id

0.2%

Accessible_getChildAtIndex

0.2%

Highest calls per 100ms = 245

Move workspaces

  • Open Network Proxy application.
  • Move application to workspace 3.
  • Move 2 workspaces right.
  • Move application to left workspace.
  • Repeat.
  • Quit application using <Alt-C>.

GOK results

Frequency of method calls

Accessible_getRole

34.2%

StateSet_getStates

18.3%

Accessible_getState

18.3%

Accessible_getChildAtIndex

13.4%

Accessible_get_childCount

8.9%

Accessible_get_name

2.2%

EventListener_notifyEvent

1.4%

Accessible_getRelationSet

1.3%

Relation_getRelationType

0.7%

Accessible_get_parent

0.6%

Accessible_get_description

0.4%

Registry_getDeviceEventController

0.1%

DeviceEventController_generateMouseEvent

0.1%

DeviceEventController_generateKeyboardEvent

0.0%

Action_getName

0.0%

Text_getTextAtOffset

0.0%

Table_get_nColumns

0.0%

Table_get_caption

0.0%

Action_get_nActions

0.0%

Table_getColumnDescription

0.0%

Registry_registerGlobalEventListener

0.0%

Registry_deregisterGlobalEventListenerAll

0.0%

Action_doAction

0.0%

DeviceEventController_registerDeviceEventListener

0.0%

DeviceEventController_deregisterDeviceEventListener

0.0%

Registry_getDesktop

0.0%

Registry_registerApplication

0.0%

Registry_getDesktopCount

0.0%

Highest calls per 100ms = 709

Registry daemon results

Frequency of method calls

EventListener_notifyEvent

99.5%

Application_set_id

0.3%

Accessible_getChildAtIndex

0.3%

Highest calls per 100ms = 256

Accessibility/Documentation/GNOME2/ATSPI2-Investigation/GOKProfiling (last edited 2011-07-21 18:14:01 by JoanmarieDiggs)