Skip to content

Commit 1e36da1

Browse files
committed
Optimize merging line coverage
Prior this change `Integer#to_i` and `NilClass#to_i` showed up in stack profiler which resulted to slow down `merge_line_coverage` a lot. This change brought down the run time from 1m28s to 1m18s on a large resultset (GitLab).
1 parent b6c2d42 commit 1e36da1

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

lib/simplecov/combine/lines_combiner.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@ def combine(coverage_a, coverage_b)
3030
#
3131
# @return [Integer || nil]
3232
def merge_line_coverage(first_val, second_val)
33-
sum = first_val.to_i + second_val.to_i
34-
35-
if sum.zero? && (first_val.nil? || second_val.nil?)
36-
nil
37-
else
38-
sum
33+
if first_val && second_val
34+
first_val + second_val
35+
elsif first_val
36+
first_val.zero? ? nil : first_val
37+
elsif second_val
38+
second_val.zero? ? nil : second_val
3939
end
4040
end
4141
end

0 commit comments

Comments
 (0)