Main Content

メモリ マップの削除

メモリ マップの削除方法

メモリから memmapfile オブジェクトをクリアするには、次のいずれかの手順に従います。

  • memmapfile オブジェクトの変数に別の値を再度割り当てる

  • memmapfile オブジェクトの変数をメモリから消去する

  • memmapfile オブジェクトが作成された関数スコープを終了する

共有データ コピーのパフォーマンスへの影響

memmapfile オブジェクトの Data フィールドを変数に割り当てると、MATLAB® ではマッピングされたデータの共有データ コピーが作成されます。メモリが実際にコピーされるわけではないため、これは非常に効率的です。次のステートメントにおいて、d はファイルからマッピングされたデータの共有データ コピーです。

d = m.Data;

マッピングされたデータを使い終えたら、必ず、マッピングされたファイルとデータを共有していた変数をすべてクリアしてから、memmapfile オブジェクト自体をクリアします。オブジェクトを先にクリアした場合、ファイルと従属変数との間のデータ共有が解除されるため、このような変数に割り当てたデータをメモリにコピーにしてから、オブジェクトをクリアしなければなりません。マッピングされたファイルにネットワークを通じてアクセスする場合、このデータをローカル メモリにコピーするにはかなりの時間がかかります。このため、m.Data を変数 d に割り当てた場合は、メモリ マップを使い終わったときに、必ず、d をクリアしてから m をクリアしてください。