Page MenuHomePhabricator

VisualEditor: Language selector from Language inspector takes long time (~15 secs) to load
Closed, ResolvedPublic


Steps to reproduce:

1.Open a page with VE
2.Go to Insert>Language
3.Now click on "Find Language" button

Observed Result:

The language selector dialog box takes a long time to load, approx. 15 secs

Version: unspecified
Severity: normal
See Also:



Event Timeline

In Firefox, it is comparatively faster than Chrome

  • Bug 66124 has been marked as a duplicate of this bug. ***

(Additional information from the duplicate bug)

The slowness also means the user can click somewhere on the screen to close the language inspector while the language list loads; it seems to allow the user to choose a language, but since the inspector is already closed, the chosen language isn't updated properly.

Change 137736 had a related patch set uploaded by Catrope:
Use this.$() in LanguageResultWidget#highlightQuery

Change 137741 had a related patch set uploaded by Catrope:
Fix GroupElement performance

These two patches get it down to 780ms on my computer. This breaks down in about 520ms for opening the dialog (including constructing all of the language entries), and 260ms for displaying the "search result" for an empty search bar. The latter is repeated every time you empty the search bar (press backspace when one character is left), which is noticeably laggy. That mostly has to do with the search query highlighting code (that's about 200ms of it), which needs to be optimized further. The dialog opening is also a bit slower than I'd like, but at least isn't as critical as responding quickly when the user presses backspace.

To be fair, without these patches, it's 520ms for opening the dialog (unchanged), and 14 seconds to display an empty search result (12 seconds for adding results, 2 seconds for highlighting), so this is already a pretty good improvement :)

Change 137736 merged by jenkins-bot:
Use this.$() in LanguageResultWidget#highlightQuery

Change 137741 merged by jenkins-bot:
GroupElement: Improve performance by avoiding .add() overhead

Verified the fix in test2 running wmf 9

Verified the fix in production (