-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbenchmark.rb
More file actions
32 lines (26 loc) · 888 Bytes
/
benchmark.rb
File metadata and controls
32 lines (26 loc) · 888 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
require_relative 'init.rb'
require 'benchmark'
DEVS = ['rjollet', 'NicholasDanks', 'samilaaroussi', 'fabiodaio', 'isaacmtz90',
'omarsar']
developers = DEVS.map { |username| LoadDeveloper.call(username).value }
def async_quality_update(developer)
promised_data = developer.repositories.map do |repo|
Concurrent::Promise.execute { UpdateRepositoryQualityData.call(repo) if repo.language.to_s.include? "Ruby" }
end
promised_data.map(&:value)
end
def quality_update(developer)
developer.repositories.each do |repo|
if repo.language.to_s.include? 'Ruby'
UpdateRepositoryQualityData.call(repo)
end
end
end
norm = Benchmark.measure do
developers.each { |developer| quality_update(developer) }
end.real
conc = Benchmark.measure do
developers.each { |developer| async_quality_update(developer) }
end.real
puts "Normal = #{norm}"
puts "Conc = #{conc}"