[#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:47511] Fwd: Re: Hash の制約について( Ruby1.8)

From: 上田佳寛 <ueda@...>
Date: 2010-10-02 12:23:36 UTC
List: ruby-list #47511
> > 私の環境では500万サイズのハッシュを作ろうとすると2,097,152(20万ヘキサ)しか
> > 作られません。問題は以下になろうと思います。
> 
> 10.48576 = 1ヘキサ、という単位は初耳なのですがそれはまず置いておくとしまして、
0x200000 = 2097152 という事です。

> $ ruby foo.rb
> size = 5000000
> friends[:0] = 0
> friends[:2097152] = 2097152
> i = 5000000
> friends[:0] =
> 削除されたi = 2500000
> 削除後size = 2500000
> 2度目の削除されたi = 5000000
> 2度目の削除後size = 0

ソースの一部を再掲すれば
>>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}"
0からハッシュのサイズまで削除するはずですがKISHIMOTOさんの
結果では半分しか消しこめていませんね。(削除されたi = 2500000 から)

> 上田さんの環境ではこうならないということでしょうか?
そうです。
私の環境では2097152となります。
---
Yoshihiro Ueda

In This Thread

Prev Next