From 18d7c1d934a343c99dc0d1adf0247ee2ce7b7606 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Fri, 21 Jul 2017 09:21:02 -0700 Subject: Optimize gitlab-projects by deferring the loading of gitlab_reference_counter Loading gitlab_reference_counter loads gitlab_net, which adds an additional 100-200 ms of time. That file pulls in a vendored Redis library among other things. --- lib/gitlab_projects.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/gitlab_projects.rb b/lib/gitlab_projects.rb index 0b11ce3..4c63a40 100644 --- a/lib/gitlab_projects.rb +++ b/lib/gitlab_projects.rb @@ -5,7 +5,6 @@ require 'open3' require_relative 'gitlab_config' require_relative 'gitlab_logger' require_relative 'gitlab_metrics' -require_relative 'gitlab_reference_counter' class GitlabProjects GLOBAL_HOOKS_DIRECTORY = File.join(ROOT_PATH, 'hooks') @@ -408,7 +407,12 @@ class GitlabProjects end def gitlab_reference_counter - @gitlab_reference_counter ||= GitlabReferenceCounter.new(full_path) + @gitlab_reference_counter ||= begin + # Defer loading because this pulls in gitlab_net, which takes 100-200 ms + # to load + require_relative 'gitlab_reference_counter' + GitlabReferenceCounter.new(full_path) + end end def rsync(src, dest, rsync_path = 'rsync') -- cgit v1.2.1