Skip to content
This repository was archived by the owner on Nov 30, 2024. It is now read-only.

Commit af5f60a

Browse files
committed
Benchmark require_relative.
It appears not to make a difference.
1 parent 3e50989 commit af5f60a

File tree

2 files changed

+133
-1
lines changed

2 files changed

+133
-1
lines changed

benchmarks/require_relative_boot.sh

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
ruby -v
2+
3+
echo "3 runs without require_relative, booting 100 times each run:"
4+
for i in {1..3}; do
5+
time (for i in {1..100}; do ruby -Ilib:../rspec-support/lib -e "require 'rspec/core'"; done)
6+
done
7+
8+
echo
9+
echo "3 runs with require_relative, booting 100 times each run:"
10+
export REQUIRE_RELATIVE=1
11+
for i in {1..3}; do
12+
time (for i in {1..100}; do ruby -Ilib:../rspec-support/lib -e "require 'rspec/core'"; done)
13+
done
14+
15+
: <<'result_comment'
16+
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin12.0]
17+
3 runs without require_relative, booting 100 times each run:
18+
19+
real 0m8.152s
20+
user 0m6.783s
21+
sys 0m1.149s
22+
23+
real 0m8.023s
24+
user 0m6.689s
25+
sys 0m1.133s
26+
27+
real 0m8.024s
28+
user 0m6.697s
29+
sys 0m1.131s
30+
31+
3 runs with require_relative, booting 100 times each run:
32+
33+
real 0m7.991s
34+
user 0m6.666s
35+
sys 0m1.118s
36+
37+
real 0m8.020s
38+
user 0m6.686s
39+
sys 0m1.128s
40+
41+
real 0m7.983s
42+
user 0m6.651s
43+
sys 0m1.121s
44+
45+
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.4.0]
46+
3 runs without require_relative, booting 100 times each run:
47+
48+
real 0m7.241s
49+
user 0m6.159s
50+
sys 0m0.879s
51+
52+
real 0m7.346s
53+
user 0m6.261s
54+
sys 0m0.901s
55+
56+
real 0m7.218s
57+
user 0m6.157s
58+
sys 0m0.881s
59+
60+
3 runs with require_relative, booting 100 times each run:
61+
62+
real 0m7.224s
63+
user 0m6.165s
64+
sys 0m0.879s
65+
66+
real 0m7.235s
67+
user 0m6.172s
68+
sys 0m0.882s
69+
70+
real 0m7.253s
71+
user 0m6.193s
72+
sys 0m0.887s
73+
74+
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin12.4.0]
75+
3 runs without require_relative, booting 100 times each run:
76+
77+
real 0m7.331s
78+
user 0m6.328s
79+
sys 0m0.831s
80+
81+
real 0m7.026s
82+
user 0m6.073s
83+
sys 0m0.792s
84+
85+
real 0m7.128s
86+
user 0m6.159s
87+
sys 0m0.811s
88+
89+
3 runs with require_relative, booting 100 times each run:
90+
91+
real 0m8.494s
92+
user 0m7.318s
93+
sys 0m0.962s
94+
95+
real 0m7.074s
96+
user 0m6.116s
97+
sys 0m0.793s
98+
99+
real 0m6.997s
100+
user 0m6.038s
101+
sys 0m0.791s
102+
103+
ruby 1.9.2p320 (2012-04-20 revision 35421) [x86_64-darwin12.4.0]
104+
3 runs without require_relative, booting 100 times each run:
105+
106+
real 0m9.484s
107+
user 0m6.893s
108+
sys 0m2.408s
109+
110+
real 0m9.578s
111+
user 0m6.971s
112+
sys 0m2.435s
113+
114+
real 0m9.451s
115+
user 0m6.890s
116+
sys 0m2.395s
117+
118+
3 runs with require_relative, booting 100 times each run:
119+
120+
real 0m9.480s
121+
user 0m6.917s
122+
sys 0m2.397s
123+
124+
real 0m9.586s
125+
user 0m6.999s
126+
sys 0m2.418s
127+
128+
real 0m9.523s
129+
user 0m6.949s
130+
sys 0m2.404s
131+
132+
result_comment

lib/rspec/core.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
require_rspec = if defined?(require_relative)
1+
require_rspec = if ENV['REQUIRE_RELATIVE']
22
lambda do |path|
33
require_relative path
44
end

0 commit comments

Comments
 (0)