class XCKnife::StreamParser::PartitionResult
Constants
- TimeImbalances
Attributes
stats[R]
test_maps[R]
test_time_for_partitions[R]
test_time_imbalances[R]
test_times[R]
total_test_time[R]
Public Class Methods
new(stats, partition_sets, test_time_for_partitions)
click to toggle source
# File lib/xcknife/stream_parser.rb, line 43 def initialize(stats, partition_sets, test_time_for_partitions) @stats = stats @partition_sets = partition_sets @test_maps = partition_sets_map(&:test_time_map) @test_times = partition_sets_map(&:total_time) @total_test_time = test_times.flatten.inject(:+) @test_time_imbalances = compute_test_time_imbalances @test_time_for_partitions = test_time_for_partitions.inject(&:merge) end
Private Instance Methods
compute_test_time_imbalances()
click to toggle source
Yields the imbalances ratios of the partition sets, and the internal imbalance ratio of the respective partitions
# File lib/xcknife/stream_parser.rb, line 56 def compute_test_time_imbalances times = test_times average_partition_size = times.map { |l| l.inject(:+).to_f / l.size } ideal_partition_set_avg = average_partition_size.inject(:+) / @partition_sets.size partition_set_imbalance = average_partition_size.map { |avg| avg / ideal_partition_set_avg } internal_partition_imbalance = times.map do |partition_times| internal_total = partition_times.inject(:+) partition_times.map do |partition_time| (partition_time * partition_times.size).to_f / internal_total end end TimeImbalances.new partition_set_imbalance, internal_partition_imbalance end
partition_sets_map(&block)
click to toggle source
# File lib/xcknife/stream_parser.rb, line 71 def partition_sets_map(&block) @partition_sets.map { |assignemnt_list| assignemnt_list.map(&block) } end