⚲
Project
General
Profile
Sign in
Register
Home
Projects
Help
Search
:
Ruby master
All Projects
Ruby
»
Ruby master
Overview
Activity
Roadmap
Issues
Repository
Like
Download (776 Bytes)
Bug #9433
ยป fork.rb
dlibanori (Daniel Libanori)
, 01/20/2014 02:41 PM
require
'open3'
N
=
22_000_000
I
=
1_000_000
def
run
(
name
,
&
block
)
print
"--
#{
name
}
: "
str
,
array
=
"0"
,
[]
N
.
times
do
|
i
|
yield
if
i
%
I
==
0
array
<<
str
.
next!
end
rescue
Errno
::
ENOMEM
puts
"failed"
else
puts
"ok"
end
strategies
=
{}
strategies
[
:nothing
]
=
lambda
do
end
strategies
[
:backtick
]
=
lambda
do
`free -m`
end
strategies
[
:system
]
=
lambda
do
system
"free -m"
end
strategies
[
:open3
]
=
lambda
do
Open3
.
popen3
'free -m'
do
|
stdin
,
stdout
,
stderr
,
wait_thread
|
stdin
.
close_write
# make sure it doesn't hang
status
=
wait_thread
.
value
stdout
.
read
end
end
strategy
=
ARGV
[
0
].
to_sym
if
strategy
==
:all
strategies
.
keys
.
shuffle
.
each
do
|
key
|
run
key
,
&
strategies
[
key
]
end
else
run
strategy
,
&
strategies
[
strategy
]
end
(1-1/1)
Loading...