ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

memory

メモリ情報を表示する

構文

memory
userview = memory
[userview systemview] = memory

説明

memory は、使用可能なメモリ量、および MATLAB® ソフトウェアが現在使用しているメモリ量の情報を表示します。コンピューターの画面に表示される情報には、以下の項目が含まれます。詳細は、以下の節で説明されます。

userview = memory は、メモリ使用量に関してユーザーに焦点を当てた情報を構造体 userview で返します。userview で返される情報には、以下の項目が含まれます。詳細は、以下の節で説明されます。

[userview systemview] = memory は、メモリ使用量に関してユーザーとシステムの両方に焦点を当てた情報をそれぞれ構造体 userviewsystemview に返します。構造体 userview については、上のコマンド構文で説明されます。systemview で返される情報には、以下の項目が含まれます。詳細は、以下の節で説明されます。

出力引数

以降の各節で、関数 memory によって表示されるか返される値について説明していきます。

利用可能な最大配列

[利用可能な最大配列] は、最大の連続利用可能メモリ ブロックのサイズです。したがって、MATLAB が現時点で作成できる最大の単一配列の上限です。

MATLAB はこの数を次の 2 つの値のうち、小さい方から導き出します。

  • MATLAB のバーチャル アドレス空間で見つかった最大の連続利用可能メモリ ブロック

  • 利用可能なシステム メモリの合計

この数が表す配列要素の数を確認するには、配列クラスのバイト数で割ります。たとえば、double 配列であれば、8 で割ります。MATLAB が作成できる実際の要素数は、常にこの数より小さくなります。

出力を割り当てずに memory コマンドを入力すると、MATLAB はこの情報を文字列として表示します。出力を割り当てると、MATLAB は情報を構造体フィールドで返します。以下の表を参照してください。

コマンド出力
memory[利用可能な最大配列:] とラベルが付いた文字列
user = memory構造体フィールド user.MaxPossibleArrayBytes

すべての値は、倍精度でバイト単位になります。

脚注

出力を指定せずに memory コマンドを入力すると、MATLAB は以下の脚注の 1 つを表示することがあります。システムが 32 ビットの場合、最初か 2 番目の脚注を表示します。64 ビットの場合には、2 番目の脚注だけを表示します。

Limited by contiguous virtual address space available.

システム メモリが十分にあり、MATLAB プロセスの最大利用可能ブロックでバーチャル アドレスをすべてマップできます。MATLAB の合計バーチャル アドレス空間の最大量は、2 GB か 3 GB です。どちらになるのかは、/3GB スイッチが有効であるかどうかで決まります。

Limited by System Memory (physical + swap file) available.

システム メモリが十分になく、MATLAB プロセスの最大利用可能ブロックでバーチャル アドレスをすべてマップできません。

すべての配列で利用可能なメモリ

[すべての配列で利用可能なメモリ] は、データを保持するために利用可能なメモリ量の合計です。利用可能なメモリ量は、少なくともこのフィールドと同じ値となることが保証されます。

MATLAB はこの数を次の 2 つの値のうち、小さい方から導き出します。

  • 利用可能な MATLAB バーチャル アドレス空間の合計

  • 利用可能なシステム メモリの合計

出力を割り当てずに memory コマンドを入力すると、MATLAB はこの情報を文字列として表示します。出力を割り当てると、MATLAB は情報を構造体フィールドで返します。以下の表を参照してください。

コマンド出力
memory[すべての配列で利用可能なメモリ:] とラベルが付いた文字列
user = memory構造体フィールド user.MemAvailableAllArrays

脚注

出力を指定せずに memory コマンドを入力すると、MATLAB は以下の脚注の 1 つを表示することがあります。システムが 32 ビットの場合、最初か 2 番目の脚注を表示します。64 ビットの場合には、後者の脚注だけを表示します。

Limited by virtual address space available.

システム メモリが十分にあり、MATLAB プロセスのバーチャル アドレス空間の利用可能なバーチャル アドレスすべてをシステム メモリにマップできます。MATLAB の合計バーチャル アドレス空間の最大量は、2 GB か 3 GB です。どちらになるのかは、/3GB スイッチが有効であるかどうかで決まります。

Limited by System Memory (physical + swap file) available.

システム メモリが十分になく、MATLAB プロセスで利用可能なバーチャル アドレスすべてはマップできません。

MATLAB で使用されるメモリ

[MATLAB で使用されるメモリ] は、MATLAB プロセス用に予約されたシステム メモリの総量です。これは、物理メモリとスワップ ファイルの潜在的使用量の合計です。

出力を割り当てずに memory コマンドを入力すると、MATLAB はこの情報を文字列として表示します。出力を割り当てると、MATLAB は情報を構造体フィールドで返します。以下の表を参照してください。

コマンド出力
memory[MATLAB で使用されるメモリ:] とラベルが付いた文字列
user = memory構造体フィールド user.MemUsedMATLAB

総物理メモリ (RAM)

[物理メモリ (RAM)] は、コンピューターに取り付けられた物理メモリ (RAM) の総量です。

出力を割り当てずに memory コマンドを入力すると、MATLAB はこの情報を文字列として表示します。以下の表を参照してください。

コマンド出力
memory[物理メモリ (RAM):] とラベルが付いた文字列

バーチャル アドレス空間

[バーチャル アドレス空間] は、MATLAB プロセスに利用可能なメモリ量と合計バーチャル メモリです。MATLAB は、返される構造体の次の 2 つのフィールドに情報を返します。Available および Total

コマンド戻り値構造体フィールドの出力
[user,sys] = memory利用可能なメモリsys.VirtualAddressSpace.Available
合計メモリsys.VirtualAddressSpace.Total

差を以下のように監視することができます。

VirtualAddressSpace.Total - VirtualAddressSpace.Available

これは、Windows® のパフォーマンス プログラムの [Virtual Bytes] カウンターで確認できます (たとえば、Windows XP の [コントロール パネル]、[管理ツール]、[パフォーマンス プログラム] の順にクリック)。

システム

[システム] は、使用しているコンピューター システムで利用可能なシステム メモリの量です。この数は、MATLAB を実行しているコンピューター上で利用可能な物理メモリ量と利用可能なスワップ ファイル容量の合計になります。MATLAB は、返される構造体の SystemMemory フィールドに情報を返します。

コマンド戻り値構造体フィールドの出力
[user,sys] = memory利用可能なメモリsys.SystemMemory

これは、次の差と同じです。

limit - total (in bytes)

Windows タスク マネージャーで見つかりました。パフォーマンス/コミット チャージ

物理メモリ

[物理メモリ] は、MATLAB を実行しているコンピューター上で利用可能な物理メモリ (RAM) および RAM の総量です。MATLAB は、返される構造体の次の 2 つのフィールドに情報を返します。Available および Total

コマンド構造体フィールドの出力
[user,sys] = memory利用可能なメモリsys.PhysicalMemory.Available
合計メモリsys.PhysicalMemory.Total

利用可能な物理メモリは、次と同じです。

Available (in bytes)

Windows タスク マネージャーで見つかりました。パフォーマンス/物理メモリ

合計物理メモリは、次と同じです。

Total (in bytes)

Windows タスク マネージャーで見つかりました。パフォーマンス/物理メモリ

すぐにアクセスできるデータ量の判断基準として利用可能な物理メモリ量を使用することができます。

32 ビット Windows システムに関するメモリ統計情報を表示します。

memory

Maximum possible array:           677 MB (7.101e+008 bytes) *
Memory available for all arrays: 1601 MB (1.679e+009 bytes) **
Memory used by MATLAB:            446 MB (4.681e+008 bytes)
Physical Memory (RAM):           3327 MB (3.489e+009 bytes)

  *  Limited by contiguous virtual address space available.
  ** Limited by virtual address space available.

MATLAB が現時点で作成できる最大配列、データを保持するために使用できるメモリ量、および MATLAB プロセスが現在使用しているメモリ量に関する情報を構造体 userview に保存して返します。

userview = memory

userview = 
   MaxPossibleArrayBytes: 710127616
   MemAvailableAllArrays: 1.6792e+009
           MemUsedMATLAB: 468127744

出力を 2 つの構造体 usersys に割り当てて、以下の情報を取得します。

[user sys] = memory;

%  --- Largest array MATLAB can create ---
user.MaxPossibleArrayBytes
ans =
   710127616

%  --- Memory available for data ---
user.MemAvailableAllArrays
ans =
   1.6797e+009

%  --- Memory used by MATLAB process ---
user.MemUsedMATLAB
ans =
   467603456

%  --- Virtual memory for MATLAB process ---
sys.VirtualAddressSpace
ans = 
   Available: 1.6797e+009
       Total: 2.1474e+009

%  --- Physical memory and paging file ---
sys.SystemMemory
ans = 
   Available: 4.4775e+009

%   --- Computer's physical memory ---
sys.PhysicalMemory
ans = 
   Available: 2.3941e+009
       Total: 3.4889e+009

詳細

すべて展開する

ヒント

関数 memory は、現在 Microsoft® Windows システムでのみ使用できます。結果は、MATLAB を実行しているコンピューター、そのコンピューターに加わる負荷、および MATLAB がその時点で行っている処理によって異なります。

MATLAB で使用されるメモリの詳細

MATLAB は、[MATLAB で使用されるメモリ] の値を計算します。具体的には、MATLAB プロセス メモリ構造体を調べて、物理的ストレージがメモリまたはディスク上のページング ファイルに割り当てられたセクションをすべて合計します。

Windows タスク マネージャーを使用して、MATLAB.exe イメージ用に以下のものを取得することができます。

Mem Usage < MemUsedMATLAB < Mem Usage + VM Size (in bytes)

ただし、次がどちらも成り立っています。

  • Mem Usage は、キロバイトを単位とするワーキング セットのサイズである

  • VM Size は、キロバイトを単位とするページ ファイル使用量、またはプライベート バイトである

ワーキング セットのサイズは、現在 RAM にある MATLAB バーチャル アドレス空間の一部であり、メモリ ページ フォールトなしで参照することができます。ページ ファイル使用量は、まだ存在しないバックアップを必要とする MATLAB バーチャル アドレス空間の一部となります。ページ ファイル使用量は、"プライベート バイト" とも呼ばれます。これには、MATLAB の変数とワークスペースがすべて含まれます。ページ ファイルの一部のページが、ワーキング セットの一部になっていることもあるので、この合計は MemUseMATLAB を過大に見積もった値です。バックアップが既にある MATLAB プロセス空間にバーチャル ページが複数あることに注意してください。たとえば、EXE と DLL、およびメモリにマップされたファイルから読み込まれたコードです。メモリ組み込みを呼び出すときにこれらのファイルの一部がメモリにある場合、そのメモリは MemUsedMATLAB の一部としてカウントされます。

予約アドレス

予約アドレスとは、将来何かに使用するためにプロセスのバーチャル アドレス空間で取り分けられているアドレスのことです。この予約アドレスのおかげで MemAvailableAllArrays のサイズは減少し、MaxPossibleArrayBytes の現在または今後の値のサイズを減少させることができます。

例 1 - Java Virtual Machine (JVM)

MATLAB 起動時に、MATLAB バーチャル アドレス空間の一部が Java Virtual Machine (JVM) によって予約されるので、MATLAB 配列の保存には使用することはできません。

例 2 - 標準の Windows ヒープ マネージャー

MATLAB は既定で、標準の Windows ヒープ マネージャーを使用します。ただし、あらかじめ選択された小さい割り当てサイズのセットを除きます。このヒープ マネージャーの特性の 1 つは、要求された割り当てが固定値 524,280 バイト未満なのかそれとも超えるのかで動作が決まることです。たとえば、一連の MATLAB 配列 (それぞれは 524,280 バイト未満) を作成してから、それらをすべてクリアすると、MemUsedMATLAB の値はクリアの前後で多少変化し、MemAvailableAllArrays の値は、割り当てられたスペースの合計だけ小さくなります。

結果として、余計なメモリをグローバルに解放するのではなく、メモリは予約されます。再使用できるのは、524,280 バイト未満の配列に対してだけです。MATLAB を再起動しない限り、このメモリをより大きい配列のために空けることはできません。

参考

| | | | | | |

チュートリアル

この情報は役に立ちましたか?