diff options
author | Rémy Coutable <remy@rymai.me> | 2017-06-09 10:31:38 +0200 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2017-06-09 17:21:39 +0200 |
commit | be0a949a004a34015977bdbcfe24e3173cd3aba9 (patch) | |
tree | 78ce2ae5ce94aaa06fc53f52b4f5d1ab17cb1c95 | |
parent | ef4ccb7e2676bf0fc3bf17c795b4ab0e0edc0821 (diff) | |
download | gitlab-ce-be0a949a004a34015977bdbcfe24e3173cd3aba9.tar.gz |
DRYed peek-pg/mysql2 views and update peek-rblineprof monkey-patch file29010-perf-bar
Signed-off-by: Rémy Coutable <remy@rymai.me>
-rw-r--r-- | app/views/peek/views/_mysql2.html.haml | 16 | ||||
-rw-r--r-- | app/views/peek/views/_pg.html.haml | 16 | ||||
-rw-r--r-- | app/views/peek/views/_sql.html.haml | 13 | ||||
-rw-r--r-- | lib/peek/rblineprof/custom_controller_helpers.rb | 35 |
4 files changed, 33 insertions, 47 deletions
diff --git a/app/views/peek/views/_mysql2.html.haml b/app/views/peek/views/_mysql2.html.haml index 5a58c719c73..ac811a10ef5 100644 --- a/app/views/peek/views/_mysql2.html.haml +++ b/app/views/peek/views/_mysql2.html.haml @@ -1,14 +1,4 @@ -%strong - %a#peek-show-queries{ href: '#' } - %span{ data: { defer_to: "#{view.defer_key}-duration" } }... - \/ - %span{ data: { defer_to: "#{view.defer_key}-calls" } }... -#modal-peek-pg-queries.modal{ tabindex: -1 } - .modal-dialog - #modal-peek-pg-queries-content.modal-content - .modal-header - %a.close{ href: "#", "data-dismiss" => "modal" } × - %h4 - SQL queries - .modal-body{ data: { defer_to: "#{view.defer_key}-queries" } }... +- local_assigns.fetch(:view) + += render 'peek/views/sql', view: view mysql diff --git a/app/views/peek/views/_pg.html.haml b/app/views/peek/views/_pg.html.haml index e38c07a6097..ee94c2f3274 100644 --- a/app/views/peek/views/_pg.html.haml +++ b/app/views/peek/views/_pg.html.haml @@ -1,14 +1,4 @@ -%strong - %a#peek-show-queries{ href: '#' } - %span{ data: { defer_to: "#{view.defer_key}-duration" } }... - \/ - %span{ data: { defer_to: "#{view.defer_key}-calls" } }... -#modal-peek-pg-queries.modal{ tabindex: -1 } - .modal-dialog - #modal-peek-pg-queries-content.modal-content - .modal-header - %a.close{ href: "#", "data-dismiss" => "modal" } × - %h4 - SQL queries - .modal-body{ data: { defer_to: "#{view.defer_key}-queries" } }... +- local_assigns.fetch(:view) + += render 'peek/views/sql', view: view pg diff --git a/app/views/peek/views/_sql.html.haml b/app/views/peek/views/_sql.html.haml new file mode 100644 index 00000000000..16fc010f66f --- /dev/null +++ b/app/views/peek/views/_sql.html.haml @@ -0,0 +1,13 @@ +%strong + %a#peek-show-queries{ href: '#' } + %span{ data: { defer_to: "#{view.defer_key}-duration" } }... + \/ + %span{ data: { defer_to: "#{view.defer_key}-calls" } }... +#modal-peek-pg-queries.modal{ tabindex: -1 } + .modal-dialog + #modal-peek-pg-queries-content.modal-content + .modal-header + %a.close{ href: "#", "data-dismiss" => "modal" } × + %h4 + SQL queries + .modal-body{ data: { defer_to: "#{view.defer_key}-queries" } }... diff --git a/lib/peek/rblineprof/custom_controller_helpers.rb b/lib/peek/rblineprof/custom_controller_helpers.rb index 2ecda58c669..99f9c2c9b04 100644 --- a/lib/peek/rblineprof/custom_controller_helpers.rb +++ b/lib/peek/rblineprof/custom_controller_helpers.rb @@ -3,6 +3,8 @@ module Peek module CustomControllerHelpers extend ActiveSupport::Concern + # This will become useless once https://github.com/peek/peek-rblineprof/pull/5 + # is merged def pygmentize(file_name, code, lexer = nil) if lexer.present? Gitlab::Highlight.highlight(file_name, code) @@ -11,7 +13,7 @@ module Peek end end - # rubocop:disable Metrics/AbcSize + # rubocop:disable all def inject_rblineprof ret = nil profile = lineprof(rblineprof_profiler_regex) do @@ -26,43 +28,32 @@ module Peek # Sort each file by the longest calculated time per_file = profile.map do |file, lines| - total, _child, excl, total_cpu, _child_cpu, excl_cpu = lines[0] + total, child, excl, total_cpu, child_cpu, excl_cpu = lines[0] wall = summary == 'exclusive' ? excl : total cpu = summary == 'exclusive' ? excl_cpu : total_cpu idle = summary == 'exclusive' ? (excl - excl_cpu) : (total - total_cpu) - sort_method = - case sort - when 'idle' - idle - when 'cpu' - cpu - else - wall - end - [ file, lines, wall, cpu, idle, - sort_method + sort == 'idle' ? idle : sort == 'cpu' ? cpu : wall ] - end - per_file = per_file.sort_by { |_a, _b, _c, _d, _e, f| -f } + end.sort_by{ |a,b,c,d,e,f| -f } output = '' per_file.each do |file_name, lines, file_wall, file_cpu, file_idle, file_sort| + output << "<div class='peek-rblineprof-file'><div class='heading'>" show_src = file_sort > min tmpl = show_src ? "<a href='#' class='js-lineprof-file'>%s</a>" : "%s" - output << - if mode == 'cpu' - sprintf("<span class='duration'>% 8.1fms + % 8.1fms</span> #{tmpl}", file_cpu / 1000.0, file_idle / 1000.0, file_name.sub(Rails.root.to_s + '/', '')) - else - sprintf("<span class='duration'>% 8.1fms</span> #{tmpl}", file_wall / 1000.0, file_name.sub(Rails.root.to_s + '/', '')) - end + if mode == 'cpu' + output << sprintf("<span class='duration'>% 8.1fms + % 8.1fms</span> #{tmpl}", file_cpu / 1000.0, file_idle / 1000.0, file_name.sub(Rails.root.to_s + '/', '')) + else + output << sprintf("<span class='duration'>% 8.1fms</span> #{tmpl}", file_wall/1000.0, file_name.sub(Rails.root.to_s + '/', '')) + end output << "</div>" # .heading @@ -89,6 +80,8 @@ module Peek output << "<pre class='duration'>#{times.join("\n")}</pre>" # The following line was changed from # https://github.com/peek/peek-rblineprof/blob/8d3b7a283a27de2f40abda45974516693d882258/lib/peek/rblineprof/controller_helpers.rb#L125 + # This will become useless once https://github.com/peek/peek-rblineprof/pull/16 + # is merged and is implemented. output << "<pre class='code highlight white'>#{pygmentize(file_name, code.join, 'ruby')}</pre>" output << "</div></div>" # .data then .peek-rblineprof-file end |