⚲
Project
General
Profile
Sign in
Register
Home
Projects
Help
Search
:
Ruby master
All Projects
Ruby
»
Ruby master
Overview
Activity
Roadmap
Issues
Repository
Like
Download (1.04 KB)
Bug #18032
ยป OpenStruct_timing.rb
TiloS (Tilo S)
, 07/09/2021 05:04 AM
require
'ostruct'
MAX
=
1_000_000
class
C
;
attr_accessor
:name
,
:age
;
def
initialize
(
name
,
age
)
self
.
name
=
name
self
.
age
=
age
end
end
start
=
Time
.
now
collection
=
(
1
..
MAX
).
collect
do
|
i
|
C
.
new
(
'User'
,
21
)
end
;
1
stop
=
Time
.
now
puts
"
#{
stop
-
start
}
seconds elapsed for Class.new (Ruby
#{
RUBY_VERSION
}
)"
s
=
Struct
.
new
(
:name
,
:age
)
start
=
Time
.
now
collection
=
(
1
..
MAX
).
collect
do
|
i
|
s
.
new
(
'User'
,
21
)
end
;
1
stop
=
Time
.
now
puts
"
#{
stop
-
start
}
seconds elapsed for Struct (Ruby
#{
RUBY_VERSION
}
)"
start
=
Time
.
now
collection
=
(
1
..
MAX
).
collect
do
|
i
|
{
:name
=>
"User"
,
:age
=>
21
}
end
;
1
stop
=
Time
.
now
puts
"
#{
stop
-
start
}
seconds elapsed for Hash (Ruby
#{
RUBY_VERSION
}
)"
start
=
Time
.
now
collection
=
(
1
..
MAX
).
collect
do
|
i
|
OpenStruct
.
new
(
:name
=>
"User"
,
:age
=>
21
)
end
;
1
stop
=
Time
.
now
puts
"
#{
stop
-
start
}
seconds elapsed for OpenStruct (Ruby
#{
RUBY_VERSION
}
)"
(1-1/1)
Loading...