Skip to content

Improve repository browsing performance using Vue

Problem to solve

Loading the commit data for each file is done after loading the list of files in the directory to improve page load time, however the last commit data (commit message, timestamp) is important information and can be very slow to load.

We should investigate why it is slow because it is a very visible problem on projects like gitlab-ce (it took 6 seconds to load today) and customers have reported problems for their own large projects.

Loading https://gitlab.com/gitlab-org/gitlab-ce
Screen_Shot_2019-03-20_at_10.16.23_AM

Further details

It is likely that the performance issue is from the conversion of the response from Gitaly into the rendered HTML that is being transferred. We should switch to using JSON and then render on the client.

Proposal

Improve the performance of loading the last commit data by moving rendering from the server to the client.

Consider:

  • loading the current directory
  • preemptively load data for other directories so that the interface is super fast

Links / references

https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/4859

Edited by James Ramsay (ex-GitLab)