Rubyの生みの親、Matzのつぶやき日記です。 http://twitter.com/yukihiro_matz/

2014年01月06日のつぶやき

10:39

link: 日本では流行らない? ウェアラブル端末、本格的に実用化へ (1/3) - ITmedia ニュース - FacebookTwitterも「日本では流行らない」って言われてた気がする http://t.co/sjsKNbLbb4

11:10

link: 記者の眼 - 「コンピュータを使うと馬鹿になる」という指摘は馬鹿にできない:ITpro - いろいろ言いたいことがあるが、余白が足りない http://t.co/4iVV0XYgEL

12:43

RT @TeamMOSA2: Rubyの恐ろしさがわかる画像 http://t.co/BMrbBzEAJg

13:20

link: 新CTOとして大場光一郎さんが参画しました! | クラウドワークス社長 吉田 浩一郎のブログ - http://t.co/k0k7heuh1Y

21:55

link: ゲーム内で死亡したキャラクターがメモリの中で生存を祈り戦うアクションアドベンチャー「Continue?9876543210」が発売 - GCと闘う主人公 http://t.co/lgawWMLSAg

23:17

@amiq11 組み込み系ではメモリが少ない環境が多いってだけで、メモリさえあればmrubyでもオブジェクトたくさん作れますよ。

23:24

@mattn_jp 現在はデフォルト可変arenaになってます。

23:26

@amiq11 メモリに余裕がある環境ならさほど気にする必要はないでしょう。ただし、mrb_valueをC側に持つ場合、C関数から抜けるとarenaからの保護がなくなることにご注意ください。

23:27

@take_cheeze intのオーバーフローって、1関数の中でどんだけオブジェクト作る気ですか? それだとarenaなくてもmallocに失敗しそうなレベルではないですか。

23:32

@take_cheeze intのサイズは環境依存ですが、多くの環境では32bitあるわけで、20億オブジェクト作らないとオーバーフローしないと思います。その前にmallocの割り当てで失敗すると思います。

23:34

@amiq11 mrb_valueがローカル変数であれば問題ないのですが、Cのグローバル変数やヒープ上の配列に置いていると、オブジェクトを生成したC関数の実行が終了してVMに戻った時点でarenaからの保護がなくなります。

23:36

@mattn_jp 「どこにもひもづけていないオブジェクト」を回収するのがGCですから。って、たぶんそういう意味の質問じゃないんですよね。

23:47

@amiq11 mrb_gc_protect()はそのC関数実行中だけオブジェクトをGCから保護する(arenaに登録する)関数です。C関数を越えて保護したい時には生きているオブジェクトのインスタンス変数などを利用して参照するようにしてください。