作者: 機械伯爵
日時: 2008/5/24(21:35)
 機械す。

> たしか小さめの整数はあらかじめアロケートしてるはずです。100
> 個だったか。

 テーブルは作ってあるというのは聞いた事があるので、多分そうだと
思います(後述のFe2+さんのコードも試してみました)

 あと、基本的に組み込みオブジェクトのタイプ(クラス)は変更不可能
なので、そこらへんはちょこっとは早くなってるものと思われます。

 ただ、演算自体の手続きは、オブジェクト生成の手間が軽くなるだけ
で、確かそのままだと思いました。

 ……まぁ、コードを見てないのでわかんないわけですが、整数と整数の
演算以外に整数が使われた場合、整数同士の計算だけを場合分けした場合
遅くならないんでしょうか。
 
> そんなことはありません。メッセージセンドできるかどうかと、ポ
> インタとしてオブジェクトを格納するかどうかは無関係ということ
> ですね。

 ポインタとしてオブジェクトを格納していないということは、C++み
たく、「ポインタでなくオブジェクトを弄る」変数そのもの、っていう
のがあるんでしょうか?

 ……ああ、それだけじゃない、よく考えたらRubyの整数オブジェクトは
確かSmalltalkと同じで、クラスにメソッド追加できたんですよね。

 組み込みオブジェクトがイミュータブルなPythonを基本に考えてると、
いろいろ混乱してくるなぁ……

 /機械伯爵/