それは私の午後の日差しの下で走る-Rubyの中のSymbolの考えです

799 ワード

ルビーの中のsymbol tableに気づいたことがあるかどうかはわかりませんが、この文章を書いて議論したいと思いますto_Symはどう使うべきですか.
現在のcontextの下にあるsymbolをすべて表示します.
Symbol.all_symbols

symbolを見てみましょう
str = :foo
Symbol.all_symbols.size
=> 3192
#      symbol table        ,  count      。

def bar
  puts "bar"
end
Symbol.all_symbols.size
=> 3193
#   ,      symbol table   。  count     。

symbol tableにもっと多くのものを入れたらどうなりますか?
Symbol.all_symbols.size
 => 3530
100.times{ |i| i.to_s.to_sym}
Symbol.all_symbols.size
 => 3630 
GC.start # ruby 2.4.0 here
Symbol.all_symbols.size
 => 3530

def bar
  puts "bar"
end
Symbol.all_symbols.size
 => 3531
GC.start # ruby 2.4.0 here
Symbol.all_symbols.size
 => 3531

以上の例からsymbolを使わないとGCされることがわかります.