Class: CompareCompressors::CostedGroupResult
- Inherits:
-
Struct
- Object
- Struct
- CompareCompressors::CostedGroupResult
- Defined in:
- lib/compare_compressors/costed_group_result.rb
Overview
Grouped result with costs calculated.
Instance Attribute Summary collapse
-
#compression_hour_cost ⇒ Object
Returns the value of attribute compression_hour_cost.
-
#compressor_level ⇒ Object
Returns the value of attribute compressor_level.
-
#compressor_name ⇒ Object
Returns the value of attribute compressor_name.
-
#decompression_hour_cost ⇒ Object
Returns the value of attribute decompression_hour_cost.
-
#geomean_compression_ratio ⇒ Object
Returns the value of attribute geomean_compression_ratio.
-
#gibyte_cost ⇒ Object
Returns the value of attribute gibyte_cost.
-
#hour_cost ⇒ Object
Returns the value of attribute hour_cost.
-
#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.
-
#total_cost ⇒ Object
Returns the value of attribute total_cost.
Class Method Summary collapse
- .from_group_results(cost_model, group_results) ⇒ Object
- .new_from_group_result(cost_model, group_result) ⇒ Object
Instance Method Summary collapse
Instance Attribute Details
#compression_hour_cost ⇒ Object
Returns the value of attribute compression_hour_cost
7 8 9 |
# File 'lib/compare_compressors/costed_group_result.rb', line 7 def compression_hour_cost @compression_hour_cost end |
#compressor_level ⇒ Object
Returns the value of attribute compressor_level
7 8 9 |
# File 'lib/compare_compressors/costed_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/costed_group_result.rb', line 7 def compressor_name @compressor_name end |
#decompression_hour_cost ⇒ Object
Returns the value of attribute decompression_hour_cost
7 8 9 |
# File 'lib/compare_compressors/costed_group_result.rb', line 7 def decompression_hour_cost @decompression_hour_cost end |
#geomean_compression_ratio ⇒ Object
Returns the value of attribute geomean_compression_ratio
7 8 9 |
# File 'lib/compare_compressors/costed_group_result.rb', line 7 def geomean_compression_ratio @geomean_compression_ratio end |
#gibyte_cost ⇒ Object
Returns the value of attribute gibyte_cost
7 8 9 |
# File 'lib/compare_compressors/costed_group_result.rb', line 7 def gibyte_cost @gibyte_cost end |
#hour_cost ⇒ Object
Returns the value of attribute hour_cost
7 8 9 |
# File 'lib/compare_compressors/costed_group_result.rb', line 7 def hour_cost @hour_cost end |
#max_compression_max_rss ⇒ Object
Returns the value of attribute max_compression_max_rss
7 8 9 |
# File 'lib/compare_compressors/costed_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/costed_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/costed_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/costed_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/costed_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/costed_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/costed_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/costed_group_result.rb', line 7 def mean_decompression_elapsed_hours @mean_decompression_elapsed_hours end |
#total_cost ⇒ Object
Returns the value of attribute total_cost
7 8 9 |
# File 'lib/compare_compressors/costed_group_result.rb', line 7 def total_cost @total_cost end |
Class Method Details
.from_group_results(cost_model, group_results) ⇒ Object
61 62 63 64 65 |
# File 'lib/compare_compressors/costed_group_result.rb', line 61 def self.from_group_results(cost_model, group_results) group_results.map do |group_result| new_from_group_result(cost_model, group_result) end end |
.new_from_group_result(cost_model, group_result) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/compare_compressors/costed_group_result.rb', line 25 def self.new_from_group_result(cost_model, group_result) if cost_model.use_cpu_time compression_hours = group_result.mean_compression_cpu_hours decompression_hours = group_result.mean_decompression_cpu_hours else compression_hours = group_result.mean_compression_elapsed_hours decompression_hours = group_result.mean_decompression_elapsed_hours end compression_hour_cost = cost_model.compression_hour_cost * compression_hours decompression_hour_cost = cost_model.decompression_hour_cost * decompression_hours hour_cost = compression_hour_cost + decompression_hour_cost gibyte_cost = cost_model.gibyte_cost * group_result.mean_compressed_gibytes new( group_result.compressor_name, group_result.compressor_level, group_result.mean_compression_cpu_hours, group_result.mean_compression_elapsed_hours, group_result.max_compression_max_rss, group_result.mean_compressed_gibytes, group_result.mean_compression_delta_gibytes, group_result.geomean_compression_ratio, group_result.mean_decompression_elapsed_hours, group_result.mean_decompression_cpu_hours, group_result.max_decompression_max_rss, compression_hour_cost, decompression_hour_cost, hour_cost, gibyte_cost, hour_cost + gibyte_cost ) end |
Instance Method Details
#to_s(currency = CostModel::DEFAULT_CURRENCY) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/compare_compressors/costed_group_result.rb', line 67 def to_s(currency = CostModel::DEFAULT_CURRENCY) gib_saved = mean_compression_delta_gibytes <<-STRING #{compressor_name} level #{compressor_level}: compression ratio : #{format('%.2f', geomean_compression_ratio)} compression elapsed hours : #{format('%.4f', mean_compression_elapsed_hours)} compression CPU hours : #{format('%.4f', mean_compression_cpu_hours)} compression max RSS (KiB) : #{format('%d', max_compression_max_rss)} compressed GiB : #{format('%.4f', mean_compressed_gibytes)} GiB saved : #{format('%.2f', gib_saved)} decompression elapsed hours : #{format('%.4f', mean_decompression_elapsed_hours)} decompression CPU hours : #{format('%.4f', mean_decompression_cpu_hours)} decompression max RSS (KiB) : #{format('%d', max_decompression_max_rss)} ------------------ storage cost : #{format('%s%0.02f', currency, gibyte_cost)} compute cost : #{format('%s%0.02f', currency, hour_cost)} total cost : #{format('%s%0.02f', currency, total_cost)} STRING end |