Class: CompareCompressors::Result
- Inherits:
-
Struct
- Object
- Struct
- CompareCompressors::Result
- Defined in:
- lib/compare_compressors/result.rb
Overview
A single compressor-level result.
Instance Attribute Summary collapse
-
#compression_cpu_time ⇒ Object
Returns the value of attribute compression_cpu_time.
-
#compression_elapsed_time ⇒ Object
Returns the value of attribute compression_elapsed_time.
-
#compression_max_rss ⇒ Object
Returns the value of attribute compression_max_rss.
-
#compressor_level ⇒ Object
Returns the value of attribute compressor_level.
-
#compressor_name ⇒ Object
Returns the value of attribute compressor_name.
-
#decompression_cpu_time ⇒ Object
Returns the value of attribute decompression_cpu_time.
-
#decompression_elapsed_time ⇒ Object
Returns the value of attribute decompression_elapsed_time.
-
#decompression_max_rss ⇒ Object
Returns the value of attribute decompression_max_rss.
-
#size ⇒ Object
Returns the value of attribute size.
-
#target ⇒ Object
Returns the value of attribute target.
Class Method Summary collapse
- .from_row(row) ⇒ Object
- .geomean(results, attribute) ⇒ Object
- .mean(results, attribute) ⇒ Object
- .read_csv(io) ⇒ Object
Instance Method Summary collapse
-
#compression_delta ⇒ Integer
Should be positive; larger is better.
-
#compression_ratio ⇒ Float
Positive; should be finite; larger is better.
- #group_key ⇒ Object
-
#uncompressed_size ⇒ Integer
In bytes; cached.
Instance Attribute Details
#compression_cpu_time ⇒ Object
Returns the value of attribute compression_cpu_time
11 12 13 |
# File 'lib/compare_compressors/result.rb', line 11 def compression_cpu_time @compression_cpu_time end |
#compression_elapsed_time ⇒ Object
Returns the value of attribute compression_elapsed_time
11 12 13 |
# File 'lib/compare_compressors/result.rb', line 11 def compression_elapsed_time @compression_elapsed_time end |
#compression_max_rss ⇒ Object
Returns the value of attribute compression_max_rss
11 12 13 |
# File 'lib/compare_compressors/result.rb', line 11 def compression_max_rss @compression_max_rss end |
#compressor_level ⇒ Object
Returns the value of attribute compressor_level
11 12 13 |
# File 'lib/compare_compressors/result.rb', line 11 def compressor_level @compressor_level end |
#compressor_name ⇒ Object
Returns the value of attribute compressor_name
11 12 13 |
# File 'lib/compare_compressors/result.rb', line 11 def compressor_name @compressor_name end |
#decompression_cpu_time ⇒ Object
Returns the value of attribute decompression_cpu_time
11 12 13 |
# File 'lib/compare_compressors/result.rb', line 11 def decompression_cpu_time @decompression_cpu_time end |
#decompression_elapsed_time ⇒ Object
Returns the value of attribute decompression_elapsed_time
11 12 13 |
# File 'lib/compare_compressors/result.rb', line 11 def decompression_elapsed_time @decompression_elapsed_time end |
#decompression_max_rss ⇒ Object
Returns the value of attribute decompression_max_rss
11 12 13 |
# File 'lib/compare_compressors/result.rb', line 11 def decompression_max_rss @decompression_max_rss end |
#size ⇒ Object
Returns the value of attribute size
11 12 13 |
# File 'lib/compare_compressors/result.rb', line 11 def size @size end |
#target ⇒ Object
Returns the value of attribute target
11 12 13 |
# File 'lib/compare_compressors/result.rb', line 11 def target @target end |
Class Method Details
.from_row(row) ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/compare_compressors/result.rb', line 58 def self.from_row(row) Result.new( row['target'], row['compressor_name'], row['compressor_level'].to_i, row['compression_elapsed_time'].to_f, row['compression_cpu_time'].to_f, row['compression_max_rss'].to_i, row['size'].to_i, row['decompression_elapsed_time'].to_f, row['decompression_cpu_time'].to_f, row['decompression_max_rss'].to_i ) end |
.geomean(results, attribute) ⇒ Object
77 78 79 |
# File 'lib/compare_compressors/result.rb', line 77 def self.geomean(results, attribute) results.map(&attribute).inject(&:*)**(1 / results.size.to_f) end |
.mean(results, attribute) ⇒ Object
73 74 75 |
# File 'lib/compare_compressors/result.rb', line 73 def self.mean(results, attribute) results.map(&attribute).inject(&:+) / results.size.to_f end |
Instance Method Details
#compression_delta ⇒ Integer
Returns should be positive; larger is better.
44 45 46 |
# File 'lib/compare_compressors/result.rb', line 44 def compression_delta uncompressed_size - size end |
#compression_ratio ⇒ Float
Returns positive; should be finite; larger is better.
37 38 39 |
# File 'lib/compare_compressors/result.rb', line 37 def compression_ratio uncompressed_size / size.to_f end |
#group_key ⇒ Object
23 24 25 |
# File 'lib/compare_compressors/result.rb', line 23 def group_key [compressor_name, compressor_level] end |
#uncompressed_size ⇒ Integer
Returns in bytes; cached.
30 31 32 |
# File 'lib/compare_compressors/result.rb', line 30 def uncompressed_size @uncompressed_size ||= File.stat(target).size end |