这是重现问题的示例代码.
# test.rb
n = 100000
res = {}
1.upto(n).to_a.inject(res) do |r, i|
r[i] = {}
end
def f(x)
x.each_value { |v| f(v) }
end
f(res)
Run Code Online (Sandbox Code Playgroud)
使用Docker Hub提供的Docker镜像运行此代码.
有什么区别?
(对不起,我的英语不好.)
这是一个补充说明.
我知道示例代码导致SystemStackError.我编写了示例代码以导致SystemStackError.
我想知道"水平"差异的原因.
在这种情况下,堆栈级别为137.
% docker container run -v (pwd):/mnt/my --rm -it ruby:2.5.0-alpine3.7 ruby -v …Run Code Online (Sandbox Code Playgroud) ruby ×1