Main Content

メモリの管理およびクリーンアップ

概要

生成された C++ コードには、オブジェクト デストラクターを介した一貫性のあるガーベジ コレクションが提供されます。また、MATLAB® Runtime の内部メモリ マネージャーにより、ヒープの断片化が生じないように最適化されます。

それでもご使用のシステムでメモリ制約がある場合は、MATLAB で配列を事前割り当てしてみてください。これにより、メモリ マネージャーの呼び出し回数が減り、ヒープが断片化する度合いも減ります。

共有ライブラリに mxArray を渡す

MATLAB Runtime を使用するアプリケーションで mxArray を作成すると、それは MATLAB Runtime の管理対象メモリ空間に作成されます。

したがって、mclInitializeApplication を呼び出す前に mxArray を作成しない (または他の MATLAB 関数を呼び出さない) ことが非常に重要です。

入力が MATLAB で永続変数またはグローバル変数に割り当てられている場合でも、コードで特定の mxArray が必要なくなったときに mxDestroyArray を呼び出すのが安全です。MATLAB では参照カウントを使用して、mxDestroyArray が呼び出されたときに、基となるデータへの別の参照がまだ存在している場合は、メモリが解放されないようにします。基となるメモリが解放されない場合でも、mxDestroyArray に渡された mxArray は無効になります。

mclInitializeApplication および mclTerminateApplication の詳細については、C 共有ライブラリの呼び出しを参照してください。

mxArray の詳細については、C 行列 APIを参照してください。