進渉報告。 セキュリティ&プログラミングキャンプ2009で、自分はひたすらに、例のBignumと同様の問題の解決に勤しんでいました。 件の問題は、RBIGNUM_PTRだとか、RBIGNUM_LENだとかいうマクロが原因で起こってました。 (Rubyでフィボナッチ数列の演算が遅い問題についてのその後の考察。@解決編 - CanI’s Diary) で、実は、これらのマクロに似たマクロが、他にもruby.hに定義されています。 Array RARRAY_PTR RARRAY_LEN String RSTRING_PTR RSTRING_LEN Struct RSTRUCT_PTR RSTRUCT_LEN Rubyでそれぞれの型を表す構造体に、型の中身が埋め込まれる(省メモリのため)可能性があるものに、これらのマクロが用意されているようです。 というわけで、こいつらをループの外に出してやったら