File tree Expand file tree Collapse file tree 2 files changed +71
-0
lines changed
Expand file tree Collapse file tree 2 files changed +71
-0
lines changed Original file line number Diff line number Diff line change @@ -170,6 +170,11 @@ getivar:
170170 category : micro
171171 single_file : true
172172 ractor : true
173+ getivar-module :
174+ desc : getivar tests the performance of getting instance variable values from modules.
175+ category : micro
176+ single_file : true
177+ ractor : true
173178structaref :
174179 desc : structaref tests the performance of getting Struct members
175180 category : micro
Original file line number Diff line number Diff line change 1+ require_relative '../harness/loader'
2+
3+ class TheClass
4+ @v0 = 1
5+ @v1 = 2
6+ @v2 = 3
7+ @levar = 1
8+
9+ def self . get_value_loop
10+ sum = 0
11+
12+ # 1M
13+ i = 0
14+ while i < 1000000
15+ # 10 times to de-emphasize loop overhead
16+ sum += @levar
17+ sum += @levar
18+ sum += @levar
19+ sum += @levar
20+ sum += @levar
21+ sum += @levar
22+ sum += @levar
23+ sum += @levar
24+ sum += @levar
25+ sum += @levar
26+ i += 1
27+ end
28+
29+ return sum
30+ end
31+ end
32+
33+ module TheModule
34+ @v0 = 1
35+ @v1 = 2
36+ @v2 = 3
37+ @levar = 1
38+
39+ def self . get_value_loop
40+ sum = 0
41+
42+ # 1M
43+ i = 0
44+ while i < 1000000
45+ # 10 times to de-emphasize loop overhead
46+ sum += @levar
47+ sum += @levar
48+ sum += @levar
49+ sum += @levar
50+ sum += @levar
51+ sum += @levar
52+ sum += @levar
53+ sum += @levar
54+ sum += @levar
55+ sum += @levar
56+ i += 1
57+ end
58+
59+ return sum
60+ end
61+ end
62+
63+ run_benchmark ( 850 ) do
64+ TheClass . get_value_loop
65+ TheModule . get_value_loop
66+ end
You can’t perform that action at this time.
0 commit comments