FY22-Q2 Create: Code Review: Improve rendering performance of Large MR: 40% faster, 65% less memory usage (Draft) => 69.5%
_(TBD: Specify UX guard rails)_ The performance of large merge requests on GitLab.com is a common problem that has been surfaced in various areas like SUS surveys and Hacker News. For this objective, we will need to: - [x] [Define "Large MR"](https://gitlab.com/gitlab-org/gitlab/-/issues/327128) - [x] Provide stable and automated metrics associated with a dashboard measure success - [ ] Identify and implement performance improvements as it relates to response/load times and usability ### Resources and previous data - [<abbr title="System Usability Scale">SUS</abbr> slide deck](https://docs.google.com/presentation/d/1kMZcRnOjuQ0K3TtT1YxedhFb5-Ej_cr2mXxeeJ9sbZ0/edit#slide=id.ga943e54df8_0_157) - [NPS (Net Promoter Score) report](https://docs.google.com/presentation/d/1BYh0gg8ogmmW8_hwmvi30Yr3Wh5aIXEa_M8RHrQ5ciw/edit#slide=id.g816b061b2f_0_33) - MR size and performance research synthesis: [slide deck](https://docs.google.com/presentation/d/13i_aagzPLusuVCx_jOVYPCyT1SSx__0OAt6cSHmWRdQ/edit?usp=sharing) and [summary video](https://youtu.be/Rd8aVDJIHGs) ### Related links - https://gitlab.com/gitlab-data/analytics/-/issues/8486 - https://gitlab.com/gitlab-org/gitlab/-/issues/327128 - https://gitlab.com/groups/gitlab-org/-/epics/422 ### Related goals - [Product OKR's for Q2-FY22](https://gitlab.com/gitlab-com/Product/-/issues/2376) - [UX KR for Q2-FY22: Focus on negative SUS theme related to merge requests](https://gitlab.com/gitlab-com/www-gitlab-com/-/issues/11204) ### Issue Tracking Issues in support of this effort are identified with ~"OKR FY22 Q2::Large MR". They can be tracked [at this link](https://gitlab.com/gitlab-org/gitlab/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=OKR%20FY22%20Q2%3A%3ALarge%20MR). ## Baseline Scoring / % Complete on this KR will be based on how we have met our goal of 40% faster and 65% less memory usage. Data for the Large MR running in the 10k reference architecture can be found here: https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/SiteSpeed/10k The initial metrics we are looking at are Fully Loaded times for speed and JSHeapUsed for memory usage. ### Baseline | Page | Fully Loaded | JSHeapUsed | | ------ | ------ | ------ | | [Discussions](https://gitlab-org.gitlab.io/-/quality/performance-sitespeed/-/jobs/1294861983/artifacts/results/pages/10k_testbed_gitlab_net/web_project_merge_request_discussions/index.html) | 25.349s | 96,558,844 | | [Commits](https://gitlab-org.gitlab.io/-/quality/performance-sitespeed/-/jobs/1294861983/artifacts/results/pages/10k_testbed_gitlab_net/web_project_merge_request_commits/index.html) | 4.752 s | 13,767,100 | | [Changes](https://gitlab-org.gitlab.io/-/quality/performance-sitespeed/-/jobs/1294861983/artifacts/results/pages/10k_testbed_gitlab_net/web_project_merge_request_changes/index.html) | 31.712 s | 443,139,016 | ### Goals | Page | Fully Loaded | JSHeapUsed | | ----------- | ------------ | ----------- | | Discussions | 15.209s | 33,795,595 | | Commits | 2.851s | 4,818,485 | | Changes | 19.027s | 155,098,655 | ### Results # Faster (LCP) | Page | LCP Improvement | |------|-----------------| | discussion | {-+2.34%-} | | commits | {+-4.77%+} | | changes | {+-53.31%+} | * **Weighted average of improvements:** {+-26.76%+} * **Progress towards goal of 40%:** {+66.89%+} # Memory improvements | Page | Memory Improvement | |------|--------------------| | discussion | {+-2.70%+} | | commits | {+-8.44%+} | | changes | {+-80.77%+} | * **Weighted average of improvements:** {+-43.19%+} * **Progress towards goal of 60%:** {+71.99%+} # Total OKR score * Faster: 27% of 40% => 67% * Memory: 43% of 60% => 72% * **Final score: 69.5%**
epic