From 89fa253864442096b7cf5bb5803f6b103aa0d92e Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Thu, 13 Jun 2019 13:50:27 -0700 Subject: 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 --- app/models/commit.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/models/commit.rb') diff --git a/app/models/commit.rb b/app/models/commit.rb index fa0bf36ba49..be37fa2e76f 100644 --- a/app/models/commit.rb +++ b/app/models/commit.rb @@ -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| -- cgit v1.2.3