GNOME Bugzilla – Bug 754048
Significant lag in 2.17.90 when populating object with many children
Last modified: 2016-02-24 22:20:33 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.
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
Where does the fix belong?
Ping? This is now in GNOME stable -- at least I'm still seeing it in F23.
I can confirm that this is now in gnome 3.18. I reported this as an orca issue and joanie pointed me hear.
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