I've written a patch to collect most symbols. PATCH: https://github.com/authorNari/ruby/compare/4a91fb7a45f0e3c...symbol_gc.patch Summary¶ Most symbols in Ruby level are GC-able(generated by #to_sym, #intern, etc..) Exclude a symbol which is translated ID in C-level from GC-able symbols Keep Ruby's C extension compatibility Pass make test-all Benchmark¶ A benchmark program is here. obj = Object.ne