2017-11-20 4 views
0

なぜソート後にハッシュの配列のメモリサイズが増えていますか?ソート後にハッシュ配列のメモリサイズが増えているのはなぜですか? (Rubyで)

たとえば、ハッシュの配列があります。私たちがその配列のメモリサイズを調べると、その値を返す値は44です。 今、配列に並べ替えを適用すると、そのメモリサイズが今大きくなります。 the documentationから直接

require 'objspace' 
array = [{:a=>1, :b=>1}, {:a=>1, :b=>3}, {:a=>1, :b=>2}, {:a=>1, :b=>4}, {:a=>1, :b=>6}, {:a=>1, :b=>7}] 
ObjectSpace.memsize_of(array) 
>> 44 
ObjectSpace.memsize_of(array.sort_by{|x| -x[:b]}) 
>> 68 
sorted_array = array.sort_by{|x| -x[:b]} 
>> [{:a=>1, :b=>7}, {:a=>1, :b=>6}, {:a=>1, :b=>4}, {:a=>1, :b=>3}, {:a=>1, :b=>2}, {:a=>1, :b=>1}] 
ObjectSpace.memsize_of(sorted_array) 
>> 68 

答えて

1

:OBJのメモリサイズを消費

戻ります。

戻りサイズは不完全であることに注意してください。この情報は、ヒントとしてのみ処理する必要があります。特に、T_DATAのサイズが正しくない可能性があります。

あなたは深く掘ると値は唯一の「ヒント」である理由、そしてherehereは良い出発点になりますを理解したい場合。

関連する問題