From: "谷垣 宏一" Date: 2008-09-12T13:49:47+09:00 Subject: [ruby-list:45499] Re: _volatileの付け方 質問者の谷垣です。 ruby-list の皆様、回答どうもありがとうございました。 # ruby-ext 拡張ライブラリML の存在は知りませんでした。。。 On 2008/09/12, at 2:14, Nobuyoshi Nakada wrote: > VALUE*がスタックやレジスタにあってもGCに対しては無意味です。また、 > volatileがあっても末尾呼び出しの最適化などで消される可能性があります。 なるほど。このあたりが一番分かっていませんでした。 初めての拡張ライブラリ作成ではまってしまいましたが、 なんとか解決できそうな気がしてきました(?) なかださんや、artonさん、るびきちさんらが教えて 下さったように、Cの配列は直接確保するより、Ruby のArrayで確保してからRARRAYとかで参照するのが よさそうですね。          * * * 「高速化」についてもいろいろとアドバイス頂き、ありが とうございます。状況等の説明をほとんどしておらず、 すみませんでした。少しだけ補足しますと、 実は、数値計算ライブラリ自体は世にあるCのものを使って おり、今回は、それに渡すユーザ定義関数(目的関数)を 高速化しようとしています。 私が定義したい目的関数は、構造体/オブジェクトをネット ワーク状に組んだような、ちょっと込み入った構造の上で、 あまり一般的でない統計計算をする類いのものなのですが、 不確定要素が多い(というよりもはじめから変更することが 決まっている)ため、今の段階で決め決めに作るのはちょっ と避けたいなぁ、という思いからでした。 このあたりは、ささださんのおっしゃるの通りかと思います。 その他、貴重なアドバイス・情報を下さいました、三ツ木さん、 横山さん、うぶんとぅさん、どうもありがとうございました。