Spike: Rendering MR diffs from diff blobs instead of line-by-line json structures
<!-- This template is a great use for issues that are feature::additions or technical tasks for larger issues.--> ### Proposal <!-- Use this section to explain the feature and how it will work. It can be helpful to add technical details, design proposals, and links to related epics or issues. --> In the context of the ~"Performance Round Tables::Code Review" and following the experience of the https://gitlab.com/gitlab-org/gitlab/-/issues/389282+, the idea came up of rendering the diff from an entire blob rather than metadata-annotated line by line json structure. In essence this is what we're talking about: | Before(now) | Proposed | | ------ | ------ | | ![Screenshot_2023-02-16_at_17.08.17](/uploads/a9b5eb2b2bd0afe2c1c4d5cc753d670b/Screenshot_2023-02-16_at_17.08.17.png) | ![Screenshot_2023-02-16_at_17.09.38](/uploads/3f36d7591fc9acdf6bbd5cf6a0a241a5/Screenshot_2023-02-16_at_17.09.38.png) | # Known challenges / open questions Things we currently don't have an answer for: 1. **How big are the performance gains?** 1. In terms of backend response times? (time to first byte but also downloading times in slow networks) 1. In terms of frontend performance? (memory usage, LCP, TBT, ...) 1. **How can we match Notes/Comments to Diff Lines?** 1. **What features are affected by not having the raw lines content in our Vue app?** (eg: Suggestions would need a way to grasp the raw lines whether from the DOM or from the server). # Expected outcome These questions can be answered by iterating on the PoC codebase but we are aiming to get a good understanding of how this could be done within the GitLab MR app, too. **Definition of done:** * a list of tasks to implement a viable migration path * a comment reporting the findings for each one of the questions above in Known Challenges section. <!-- Consider adding related issues and epics to this issue. You can also reference the Feature Proposal Template (https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Feature%20proposal%20-%20detailed.md) for additional details to consider adding to this issue. Additionally, as a data oriented organization, when your feature exits planning breakdown, consider adding the `What does success look like, and how can we measure that?` section. --> <!-- Label reminders Use the following resources to find the appropriate labels: - Use only one tier label choosing the lowest tier this is intended for - https://gitlab.com/gitlab-org/gitlab/-/labels - https://about.gitlab.com/handbook/product/categories/features/ -->
issue