After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 754048 - Significant lag in 2.17.90 when populating object with many children
Significant lag in 2.17.90 when populating object with many children
Status: RESOLVED FIXED
Product: at-spi
Classification: Platform
Component: at-spi2-core
unspecified
Other Linux
: Normal normal
: ---
Assigned To: At-spi maintainer(s)
At-spi maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2015-08-24 22:54 UTC by Joanmarie Diggs (IRC: joanie)
Modified: 2016-02-24 22:20 UTC
See Also:
GNOME target: 3.20
GNOME version: ---


Attachments
test case (1.22 KB, text/x-python)
2015-08-24 22:54 UTC, Joanmarie Diggs (IRC: joanie)
Details

Description Joanmarie Diggs (IRC: joanie) 2015-08-24 22:54:17 UTC
Created attachment 309934 [details]
test case

Steps to reproduce:
1. Launch the attached test case in a terminal using AT-SPI2 2.17.1
2. Launch the attached test case in a terminal using AT-SPI2 2.17.90
3. Compare the times (in seconds) printed in the terminal window

Here's what I get using Fedora 23:
2.17.1: time: 0.2940
2.17.90: time: 13.4132

Note that the for loop is iterating through accessible apps, but otherwise doing nothing.
Comment 1 Mike Gorse 2015-08-27 15:52:23 UTC
We're calling get_index_in_parent on all of the menu items. The menu items don't know their index in their parent, so gtk's atk implementation iterates through all of the parent's children looking for the object. O=n^2
Comment 2 Joanmarie Diggs (IRC: joanie) 2015-08-27 20:59:41 UTC
Where does the fix belong?
Comment 3 Joanmarie Diggs (IRC: joanie) 2015-10-16 23:47:03 UTC
Ping? This is now in GNOME stable -- at least I'm still seeing it in F23.
Comment 4 kendell clark 2015-10-18 23:42:24 UTC
I can confirm that this is now in gnome 3.18. I reported this as an orca issue and joanie pointed me hear.
Comment 5 Mike Gorse 2016-02-24 22:20:33 UTC
I've worked around it in at-spi2-atk by not sending children of gtk menus to be cached and not sending the index of menu items in their parent. Hopefully I haven't broken anything in the process.

master: 7ca517