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