diff options
author | Paco Guzman <pacoguzmanp@gmail.com> | 2016-06-27 16:06:04 +0200 |
---|---|---|
committer | Paco Guzman <pacoguzmanp@gmail.com> | 2016-06-27 16:06:04 +0200 |
commit | 85b21487808fd18a0d4b984103af62f098448922 (patch) | |
tree | 63163b60cf9126ab6a09bce13564fad472e9953c /app/models/project_services | |
parent | 6acdf1fcb56c1564c4ba3649bdc74bd039adf576 (diff) | |
download | gitlab-ce-proper-default-issue-tracker.tar.gz |
Avoid open/close transaction in each gon helper callproper-default-issue-tracker
require 'benchmark/ips'
Project.first # To load database things
GitlabIssueTrackerService.first # To load database things
Benchmark.ips do |x|
x.config(:time => 5, :warmup => 2)
x.report("current") do
Project.new.default_issue_tracker.to_param
end
x.report("") do
Project.default_issue_tracker_service_name
end
x.compare!
end
Calculating -------------------------------------
current 3.000 i/100ms
22.466k i/100ms
-------------------------------------------------
current 39.875 (±15.0%) i/s - 192.000
1.444M (±14.8%) i/s - 6.605M
Comparison:
: 1443612.8 i/s
current: 39.9 i/s - 36203.16x slower
Diffstat (limited to 'app/models/project_services')
4 files changed, 9 insertions, 4 deletions
diff --git a/app/models/project_services/custom_issue_tracker_service.rb b/app/models/project_services/custom_issue_tracker_service.rb index 6b2b1daa724..6a95f6eeaf9 100644 --- a/app/models/project_services/custom_issue_tracker_service.rb +++ b/app/models/project_services/custom_issue_tracker_service.rb @@ -1,4 +1,5 @@ class CustomIssueTrackerService < IssueTrackerService + NAME = 'custom_issue_tracker' prop_accessor :title, :description, :project_url, :issues_url, :new_issue_url @@ -19,7 +20,7 @@ class CustomIssueTrackerService < IssueTrackerService end def to_param - 'custom_issue_tracker' + NAME end def fields diff --git a/app/models/project_services/gitlab_issue_tracker_service.rb b/app/models/project_services/gitlab_issue_tracker_service.rb index 5d17c358330..ef17ec4e393 100644 --- a/app/models/project_services/gitlab_issue_tracker_service.rb +++ b/app/models/project_services/gitlab_issue_tracker_service.rb @@ -1,12 +1,14 @@ class GitlabIssueTrackerService < IssueTrackerService include Gitlab::Routing.url_helpers + NAME = 'gitlab' + prop_accessor :title, :description, :project_url, :issues_url, :new_issue_url default_value_for :default, true def to_param - 'gitlab' + NAME end def project_url diff --git a/app/models/project_services/jira_service.rb b/app/models/project_services/jira_service.rb index beda89d3963..80c20291288 100644 --- a/app/models/project_services/jira_service.rb +++ b/app/models/project_services/jira_service.rb @@ -3,6 +3,7 @@ class JiraService < IssueTrackerService include Gitlab::Routing.url_helpers DEFAULT_API_VERSION = 2 + NAME = 'jira' prop_accessor :username, :password, :api_url, :jira_issue_transition_id, :title, :description, :project_url, :issues_url, :new_issue_url @@ -44,7 +45,7 @@ class JiraService < IssueTrackerService end def to_param - 'jira' + NAME end def fields diff --git a/app/models/project_services/redmine_service.rb b/app/models/project_services/redmine_service.rb index 11cce3e0561..03f8440c224 100644 --- a/app/models/project_services/redmine_service.rb +++ b/app/models/project_services/redmine_service.rb @@ -1,4 +1,5 @@ class RedmineService < IssueTrackerService + NAME = 'redmine' prop_accessor :title, :description, :project_url, :issues_url, :new_issue_url @@ -19,6 +20,6 @@ class RedmineService < IssueTrackerService end def to_param - 'redmine' + NAME end end |