Page MenuHomePhabricator

Improve the performance in the Wikifunctions front-end, so that function creators and users can use complex and large Objects such as those from Wikidata without difficulty
Closed, ResolvedPublic

Description

Description

During Q3 we conducted a detailed analysis of the Front End performance issues, origin and mitigation strategies.

For Q4 we propose working on a limited number of mitigation strategies from the ones identified in the analysis, focusing on those which:

  • Require the least amount of effort
  • Maximize impact
  • Center around enabling the use of Wikidata features

The mitigation strategies suggested for Q4 are the following:

  • To reduce number of components:
    • Measure 1.2: Render a limited number of items in every list
    • [Stretch] Measure 1.1. Remove unnecessary components
  • To reduce component complexity:
    • T391133 Measure 2.2: Reduce complexity of nuclear getters by using Map
  • Other improvements:
    • [Stretch] Measure 3: Namespace ZObject tables to remove the extra complexity of deleting Detached objects

Acceptance criteria

  • At least one measure was implemented to reduce the total number of components.
  • At least one measure was implemented to reduce the complexity of component data access.
OKR rescoping 09-06-2025

Due to low effectiveness of T391133: Reduce complexity of nuclear getters by using Map instead of an Array for the flat ZObject representation on performance, we've decided to solve the root issue:

Acceptance criteria

  • Front-end load times visibly improve
  • UI can load an expanded Q144 wikidata object in a reasonable time with no browser crashes
  • There's no functionality loss in the UI

Completion checklist

Event Timeline

DSantamaria triaged this task as Medium priority.Apr 9 2025, 4:55 PM
gengh updated the task description. (Show Details)