diff options
author | Stan Hu <stanhu@gmail.com> | 2017-07-21 09:21:02 -0700 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2017-07-21 09:22:24 -0700 |
commit | 18d7c1d934a343c99dc0d1adf0247ee2ce7b7606 (patch) | |
tree | 4a2ceec8038ab487031645adadcf00f30e83afd6 /lib | |
parent | 53df36f24c1d660d00298e05c78d34468af7db1d (diff) | |
download | gitlab-shell-sh-defer-reference-counter-load.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.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab_projects.rb | 8 |
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') |