それは私の午後の日差しの下で走る-Rubyの中のSymbolの考えです
799 ワード
ルビーの中のsymbol tableに気づいたことがあるかどうかはわかりませんが、この文章を書いて議論したいと思いますto_Symはどう使うべきですか.
現在のcontextの下にあるsymbolをすべて表示します.
symbolを見てみましょう
symbol tableにもっと多くのものを入れたらどうなりますか?
以上の例からsymbolを使わないとGCされることがわかります.
現在の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されることがわかります.