Speed up merge request loads by disabling BatchLoader replace_methods

In production, we've seen the rendering times of the merge request
widget increase as a result of loading commit data. BatchLoader attempts
to call replace_methods on the lazy object, but this has a significant
performance penalty for modules that have many methods. Disabling this
mode (https://github.com/exAspArk/batch-loader/pull/45) appears to cut
load times by about 50% for MergeRequestsController#show.

Relates to https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/6941
This commit is contained in:
Stan Hu 2019-06-13 13:50:27 -07:00
parent 21bf85553d
commit 89fa253864
1 changed files with 1 additions and 1 deletions

View File

@ -94,7 +94,7 @@ class Commit
end
def lazy(project, oid)
BatchLoader.for({ project: project, oid: oid }).batch do |items, loader|
BatchLoader.for({ project: project, oid: oid }).batch(replace_methods: false) do |items, loader|
items_by_project = items.group_by { |i| i[:project] }
items_by_project.each do |project, commit_ids|