Class: CompareCompressors::GroupResult
- Inherits:
-
Struct
- Object
- Struct
- CompareCompressors::GroupResult
- Defined in:
- lib/compare_compressors/group_result.rb
Overview
A single compressor-level result averaged the over targets.
Constant Summary collapse
- DEFAULT_SCALE =
1.0
- HOUR =
seconds
3600
- GIGABYTE =
bytes
1024**3
Instance Attribute Summary collapse
-
#compressor_level ⇒ Object
Returns the value of attribute compressor_level.
-
#compressor_name ⇒ Object
Returns the value of attribute compressor_name.
-
#geomean_compression_ratio ⇒ Object
Returns the value of attribute geomean_compression_ratio.
-
#max_compression_max_rss ⇒ Object
Returns the value of attribute max_compression_max_rss.
-
#max_decompression_max_rss ⇒ Object
Returns the value of attribute max_decompression_max_rss.
-
#mean_compressed_gibytes ⇒ Object
Returns the value of attribute mean_compressed_gibytes.
-
#mean_compression_cpu_hours ⇒ Object
Returns the value of attribute mean_compression_cpu_hours.
-
#mean_compression_delta_gibytes ⇒ Object
Returns the value of attribute mean_compression_delta_gibytes.
-
#mean_compression_elapsed_hours ⇒ Object
Returns the value of attribute mean_compression_elapsed_hours.
-
#mean_decompression_cpu_hours ⇒ Object
Returns the value of attribute mean_decompression_cpu_hours.
-
#mean_decompression_elapsed_hours ⇒ Object
Returns the value of attribute mean_decompression_elapsed_hours.
Class Method Summary collapse
-
.group(results, scale: DEFAULT_SCALE) ⇒ Array.<GroupResult>
Group individual result to average across targets in the sample.
-
.new_from_results(compressor_name, compressor_level, results, scale) ⇒ Object
Create a GroupResult for a group of Results for the same compressor and level (but possibly multiple targets).
Instance Attribute Details
#compressor_level ⇒ Object
Returns the value of attribute compressor_level
7 8 9 |
# File 'lib/compare_compressors/group_result.rb', line 7 def compressor_level @compressor_level end |
#compressor_name ⇒ Object
Returns the value of attribute compressor_name
7 8 9 |
# File 'lib/compare_compressors/group_result.rb', line 7 def compressor_name @compressor_name end |
#geomean_compression_ratio ⇒ Object
Returns the value of attribute geomean_compression_ratio
7 8 9 |
# File 'lib/compare_compressors/group_result.rb', line 7 def geomean_compression_ratio @geomean_compression_ratio end |
#max_compression_max_rss ⇒ Object
Returns the value of attribute max_compression_max_rss
7 8 9 |
# File 'lib/compare_compressors/group_result.rb', line 7 def max_compression_max_rss @max_compression_max_rss end |
#max_decompression_max_rss ⇒ Object
Returns the value of attribute max_decompression_max_rss
7 8 9 |
# File 'lib/compare_compressors/group_result.rb', line 7 def max_decompression_max_rss @max_decompression_max_rss end |
#mean_compressed_gibytes ⇒ Object
Returns the value of attribute mean_compressed_gibytes
7 8 9 |
# File 'lib/compare_compressors/group_result.rb', line 7 def mean_compressed_gibytes @mean_compressed_gibytes end |
#mean_compression_cpu_hours ⇒ Object
Returns the value of attribute mean_compression_cpu_hours
7 8 9 |
# File 'lib/compare_compressors/group_result.rb', line 7 def mean_compression_cpu_hours @mean_compression_cpu_hours end |
#mean_compression_delta_gibytes ⇒ Object
Returns the value of attribute mean_compression_delta_gibytes
7 8 9 |
# File 'lib/compare_compressors/group_result.rb', line 7 def mean_compression_delta_gibytes @mean_compression_delta_gibytes end |
#mean_compression_elapsed_hours ⇒ Object
Returns the value of attribute mean_compression_elapsed_hours
7 8 9 |
# File 'lib/compare_compressors/group_result.rb', line 7 def mean_compression_elapsed_hours @mean_compression_elapsed_hours end |
#mean_decompression_cpu_hours ⇒ Object
Returns the value of attribute mean_decompression_cpu_hours
7 8 9 |
# File 'lib/compare_compressors/group_result.rb', line 7 def mean_decompression_cpu_hours @mean_decompression_cpu_hours end |
#mean_decompression_elapsed_hours ⇒ Object
Returns the value of attribute mean_decompression_elapsed_hours
7 8 9 |
# File 'lib/compare_compressors/group_result.rb', line 7 def mean_decompression_elapsed_hours @mean_decompression_elapsed_hours end |
Class Method Details
.group(results, scale: DEFAULT_SCALE) ⇒ Array.<GroupResult>
Group individual result to average across targets in the sample.
51 52 53 54 55 56 57 58 59 60 |
# File 'lib/compare_compressors/group_result.rb', line 51 def self.group(results, scale: DEFAULT_SCALE) results.group_by(&:group_key).map do |_, group_results| GroupResult.new_from_results( group_results.first.compressor_name, group_results.first.compressor_level, group_results, scale ) end end |
.new_from_results(compressor_name, compressor_level, results, scale) ⇒ Object
Create a GroupResult for a group of Results for the same compressor and level (but possibly multiple targets).
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/compare_compressors/group_result.rb', line 29 def self.new_from_results(compressor_name, compressor_level, results, scale) new( compressor_name, compressor_level, scale * Result.mean(results, :compression_elapsed_time) / HOUR, scale * Result.mean(results, :compression_cpu_time) / HOUR, results.map(&:compression_max_rss).max, scale * Result.mean(results, :size) / GIGABYTE, scale * Result.mean(results, :compression_delta) / GIGABYTE, Result.geomean(results, :compression_ratio), scale * Result.mean(results, :decompression_elapsed_time) / HOUR, scale * Result.mean(results, :decompression_cpu_time) / HOUR, results.map(&:decompression_max_rss).max ) end |