ruby-prof 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 522834d46befbdc0f999e78d9bff9f2f98883c6bf5a15fc8d56444bf34778a72
4
- data.tar.gz: b4bf7cc5ec23482ccbcb103b6c7ab87c8614da0076d6a43f4848d6cd8aee3178
3
+ metadata.gz: de991aaaa9b3bae6b7d38da2adac6112e7f254d2927ec3e6cb6e7d1d07fb4c7b
4
+ data.tar.gz: 1f246cf6795b6cb955188349c5f4da06e95a3fd94241fbd29aab8dcdcd19d312
5
5
  SHA512:
6
- metadata.gz: ef3c25b85260c8c3878c3dbfb5d80469731f1070ecb3d5d8c474dc8d5c149578757fcfec91af508742cdd1b1da7500a4cf7dc2670b23f3261d5689f4fcd5f27c
7
- data.tar.gz: bc891673567736bef06b12eb72514425261a678ad9d33ad709835e1e1cffd265c4657ba436a2e28486a45fa35fd678117ac2a2882c564fbfb334eb1edcec3918
6
+ metadata.gz: bc39dad6f9d5795ba4f48fa674097798de0be279ea9ccae63c2a7c683f22031bbf6bda85b81b46bccd8b4112d30e65b40d5a5dac9311ced4d033f3ccb32fd2de
7
+ data.tar.gz: bf04b46a607a9ff896fc6d8eb169447920136ce5a713132993d2f1e830b215c4fa97f9c43253024ddebb289bc5b3f1ceba0200579796f28a9e31c6faffedb698
data/CHANGES CHANGED
@@ -1,3 +1,8 @@
1
+ 1.3.1 (2020-03-11)
2
+ =====================
3
+ * Add max_percent and filter_by options to flat printer (Sean McGivern)
4
+ * Include binary in mingw64 build (Charlie Savage)
5
+
1
6
  1.3.0 (2020-02-22)
2
7
  =====================
3
8
  * Update C code to use newer RTypedData API versus older RData API.
@@ -17,11 +17,21 @@ module RubyProf
17
17
  @output = nil
18
18
  end
19
19
 
20
- # Returns the min_percent of total time a method must take to be included in a profiling report
20
+ # Returns the min_percent of time a method must take to be included in a profiling report
21
21
  def min_percent
22
22
  @options[:min_percent] || 0
23
23
  end
24
24
 
25
+ # Returns the max_percent of time a method can take to be included in a profiling report
26
+ def max_percent
27
+ @options[:max_percent] || 100
28
+ end
29
+
30
+ # Returns the method to filter methods by (when using min_percent and max_percent)
31
+ def filter_by
32
+ @options[:filter_by] || :self_time
33
+ end
34
+
25
35
  # Returns the time format used to show when a profile was run
26
36
  def time_format
27
37
  '%A, %B %-d at %l:%M:%S %p (%Z)'
@@ -29,8 +29,9 @@ module RubyProf
29
29
 
30
30
  sum = 0
31
31
  methods.each do |method|
32
- self_percent = (method.self_time / total_time) * 100
33
- next if self_percent < min_percent
32
+ percent = (method.send(filter_by) / total_time) * 100
33
+ next if percent < min_percent
34
+ next if percent > max_percent
34
35
 
35
36
  sum += method.self_time
36
37
  #self_time_called = method.called > 0 ? method.self_time/method.called : 0
@@ -1,3 +1,3 @@
1
1
  module RubyProf
2
- VERSION = "1.3.0"
2
+ VERSION = "1.3.1"
3
3
  end
@@ -65,4 +65,31 @@ class PrinterFlatTest < TestCase
65
65
  assert_sorted times
66
66
  end
67
67
  end
68
+
69
+ def test_flat_result_max_percent
70
+ printer = RubyProf::FlatPrinter.new(@result)
71
+
72
+ printer.print(output = '', max_percent: 1)
73
+ self_percents = flat_output_nth_column_values(output, 1).map(&:to_f)
74
+
75
+ assert self_percents.max < 1
76
+ end
77
+
78
+ def test_flat_result_filter_by_total_time
79
+ printer = RubyProf::FlatPrinter.new(@result)
80
+
81
+ printer.print(output = '', filter_by: :total_time, min_percent: 50)
82
+ total_times = flat_output_nth_column_values(output, 2).map(&:to_f)
83
+
84
+ assert (total_times.min / total_times.max) >= 0.5
85
+ end
86
+
87
+ def test_flat_result_filter_by_self_time
88
+ printer = RubyProf::FlatPrinter.new(@result)
89
+
90
+ printer.print(output = '', filter_by: :self_time, min_percent: 0.1)
91
+ self_percents = flat_output_nth_column_values(output, 1).map(&:to_f)
92
+
93
+ assert self_percents.min >= 0.1
94
+ end
68
95
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-prof
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shugo Maeda, Charlie Savage, Roger Pack, Stefan Kaes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-22 00:00:00.000000000 Z
11
+ date: 2020-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -177,7 +177,7 @@ metadata:
177
177
  bug_tracker_uri: https://github.com/ruby-prof/ruby-prof/issues
178
178
  changelog_uri: https://github.com/ruby-prof/ruby-prof/blob/master/CHANGES
179
179
  documentation_uri: https://ruby-prof.github.io/
180
- source_code_uri: https://github.com/ruby-prof/ruby-prof/tree/v1.3.0
180
+ source_code_uri: https://github.com/ruby-prof/ruby-prof/tree/v1.3.1
181
181
  post_install_message:
182
182
  rdoc_options: []
183
183
  require_paths: