Rubyで現在のスタックサイズをバイト単位で確認する方法

概要

Ruby では RUBY_THREAD_VM_STACK_SIZE 環境変数でスタックのサイズを設定できるようです。

スタックの現在のサイズをプログラムで判断する方法はありますか?これは、適切なスタック サイズを選択する際の有益な入力となります (また、SystemStackError やスタック レベルが深すぎるエラーのデバッグにも役立ちます)。

解決策

おそらくその質問に対する移植可能な答えはありませんが、MRI の場合は RubyVM::DEFAULT_PARAMS があります。

私のマシンでは:

> RubyVM::DEFAULT_PARAMS
{:thread_vm_stack_size=>1048576,
 :thread_machine_stack_size=>1048576,
 :fiber_vm_stack_size=>131072,
 :fiber_machine_stack_size=>524288}