[#47529] ruby1.9.2 にて、 IO#reopen で第2引数を省略したときにモードが引き継がれない — jugyo kohno <kkohno@...>

jugyo と申します

11 messages 2010/10/08
[#47562] Re: ruby1.9.2 にて、 IO#reopen で第2引数を省略したときにモードが引き継がれない — "Y. NOBUOKA" <nobuoka@...> 2010/10/15

信岡です。

[#47537] Excel用のxmlssファイルを作成するライブラリ exlap_c — "YOSHIIZUMI" <t-yoshiizumi@...>

 吉泉といいます。

11 messages 2010/10/10

[ruby-list:47501] Hash の制約について( Ruby1.8)

From: 上田佳寛 <ueda@...>
Date: 2010-10-01 00:49:51 UTC
List: ruby-list #47501
皆様はじめまして

Ruby を2週間前から学習開始しだしたウエダといいます。

Hashですが、どの程度大きいものが作れるのかと思い
簡単なプログラムを作ってみたのですが不明点が2点あります。

(1) 最大サイズは決まっているのか?
    またはマシン(OS, ヒープサイズの設定等)による違いがある?
(2) 最大サイズを超えたHashにデータを追加し続けるとどのような挙動になるのか?
    (上書きか、追加失敗か、そのときのキー値は?)

というわけで、以下にソースを付けます。(動かすとかなり時間が掛かります。)
---cut cut
#  新しいハッシュを作る
friends = Hash.new
i = 0
while i < 5000000
	i_s = i.to_s
	friends[i_s.intern] = i.to_s
	i = i + 1
end
puts "size = #{friends.size}"
puts "friends[:0] = #{friends['0'.intern]}"
puts "friends[:2097152] = #{friends['2097152'.intern]}"
puts "i = #{i}"
i = 0
while i < friends.size
	i_s = i.to_s
	friends.delete( i_s.intern )
	i = i + 1
end
puts "friends[:0] = #{friends['0'.intern]}"
puts "削除されたi = #{i}"
puts "削除後size = #{friends.size}"
while i < 5000000
	i_s = i.to_s
	friends.delete( i_s.intern )
	i = i + 1
end
puts "2度目の削除されたi = #{i}"
puts "2度目の削除後size = #{friends.size}"
-------まで

In This Thread

Prev Next