-
Notifications
You must be signed in to change notification settings - Fork 1
/
benchmark_bug_spec.cr
40 lines (35 loc) · 1.11 KB
/
benchmark_bug_spec.cr
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
33
34
35
36
37
38
39
40
require "../spec_helper"
describe Api::Pessoas::Show do
it "should generate urls" do
puts "measuring:"
elapsed_time1 = Time.measure do
url = ""
100_000.times do |i|
url = Api::Pessoas::Show.url("abc#{i}")
end
end
puts "Api URL: #{elapsed_time1.milliseconds}"
elapsed_time4 = Time.measure do
url = ""
100_000.times do |i|
url = Api::Pessoas::Show.path("abc#{i}")
end
end
puts "Api PATH: #{elapsed_time4.milliseconds}"
elapsed_time2 = Time.measure do
100_000.times do |i|
url = "http://localhost:9999/pessoas/abc#{i}"
end
end
puts "Raw URL: #{elapsed_time2.milliseconds}"
elapsed_time3 = Time.measure do
100_000.times do |i|
url = "#{Lucky::RouteHelper.settings.base_uri}/pessoas/abc#{i}"
end
end
puts "base_uri concat: #{elapsed_time3.milliseconds}"
# this only assesses that the Lucky routable.cr route method is almost 7x slower than just string concatenation
(elapsed_time1).should_not be.>(elapsed_time2 * 10)
(elapsed_time1).should_not be.>(elapsed_time3 * 10)
end
end