次のコードがあります。
for i=1:N,
some_mex_file();
end
私の MEX ファイルは次のことを行います。
- 私が定義したクラスのオブジェクトを宣言します。これは、2 つの大きなメモリ ブロック、つまり double 型の 32x2048x2 を持ちます。
- このオブジェクトのデータを処理します。
- オブジェクトを破棄します。
オブジェクトに大きなメモリ ブロックを割り当てるループ内で MEX ファイルを呼び出すと、さらに時間がかかるのではないかと考えています。オブジェクトを一度だけ宣言し、そのメモリ空間をリセットして、新しい宣言なしで何度でも使用できるように、C++ に移行することを考えていました。これは違いを生むのでしょうか、それとも価値のない努力になるのでしょうか? つまり、一度宣言して再利用するよりも、MEX ファイルにメモリを割り当てる方が時間がかかりますか?