idが被る
実行環境
OS : MacOSX 10.5.7
ruby : 1.8.6
objs = [] strs = [] 100000.times do |i| objs << Object.new.object_id.to_s strs << String.new.object_id.to_s print objs[i], " ", strs[i], " ", i, "\r\n" end print objs.uniq.size, " ", strs.uniq.size, "\r\n"
実行結果
83590 83570 0 83490 83470 1 83390 83370 2 83290 83270 3 83190 83170 4 (中略) 19040 19020 1588 18900 18860 1589 18740 18710 1590 18510 18480 1591 298740 298720 1592 298640 298620 1593 298540 298520 1594 298440 298420 1595 (中略) 11825380 11825360 99995 11825280 11825260 99996 11825180 11825160 99997 11825080 11825060 99998 11824980 11824960 99999 80635 74379
という風になった。
10万個のObjectとStringのインスタンスを作って、オブジェクトのidを配列にいれ、表示させました。一番最後の行で配列中の重複を削除しています。
たくさんのオブジェクトを作るとidが被るみたいです。
ちなみに、何回実行しても最後の数は同じになりました。
対策が思いつかないので誰か教えてください。