summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2017-07-21 09:21:02 -0700
committerStan Hu <stanhu@gmail.com>2017-07-21 09:22:24 -0700
commit18d7c1d934a343c99dc0d1adf0247ee2ce7b7606 (patch)
tree4a2ceec8038ab487031645adadcf00f30e83afd6
parent53df36f24c1d660d00298e05c78d34468af7db1d (diff)
downloadgitlab-shell-18d7c1d934a343c99dc0d1adf0247ee2ce7b7606.tar.gz
Optimize gitlab-projects by deferring the loading of gitlab_reference_countersh-defer-reference-counter-load
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.
-rw-r--r--lib/gitlab_projects.rb8
1 files 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')