ドキュメンテーション

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

memory

メモリ情報を表示する

構文

memory
userview = memory
[userview systemview] = memory

制限

  • 関数 memory は、Microsoft® Windows® システムでのみ使用できます。結果は、コンピューター ハードウェアやコンピューターの負荷によって異なります。

説明

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

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

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

出力引数

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

利用可能な最大配列

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

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

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

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

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

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

コマンド出力
memoryMaximum possible array: というラベルの付いた文字ベクトル
user = memory構造体フィールド user.MaxPossibleArrayBytes

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

脚注

64 ビット システムで出力を指定せずに memory コマンドを入力すると、MATLAB は次の脚注の 1 つを表示することがあります。

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

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

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

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

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

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

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

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

コマンド出力
memoryMemory available for all arrays: というラベルの付いた文字ベクトル
user = memory構造体フィールド user.MemAvailableAllArrays

脚注

64 ビット システムで出力を指定せずに memory コマンドを入力すると、MATLAB は次の脚注を表示することがあります。

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

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

MATLAB で使用されるメモリ

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

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

コマンド出力
memoryMemory used by MATLAB: というラベルの付いた文字ベクトル
user = memory構造体フィールド user.MemUsedMATLAB

物理メモリ (RAM)

物理メモリは、MATLAB を実行しているコンピューター上で利用可能な物理メモリ (RAM) の合計です。

出力を割り当てずに memory コマンドを入力すると、MATLAB は合計メモリをコマンド ウィンドウに表示します。出力を割り当てた場合、MATLAB は利用可能なメモリと合計メモリの両方を構造体フィールドに返します。以下の表を参照してください。

コマンド出力
memory合計メモリPhysical Memory (RAM): というラベルの付いた文字ベクトル
[user,sys] = memory利用可能なメモリ構造体フィールド sys.PhysicalMemory.Available
合計メモリ構造体フィールド sys.PhysicalMemory.Total

利用可能な物理メモリは、Windows タスク マネージャーに表示される [利用可能] の値と同じです。パフォーマンス/物理メモリおよび総物理メモリは、[合計] の値と同じです。

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

バーチャル アドレス空間

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

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

次の差を監視することができます。

VirtualAddressSpace.Total - VirtualAddressSpace.Available

これは、Windows のパフォーマンス モニター (たとえば Windows 7 では [コントロール パネル]、[管理ツール]、[パフォーマンス モニター] の順にクリック) の [Virtual Bytes] カウンターとして監視できます。カウンターを追加する場合、[Virtual Bytes] カウンターは [プロセス] メニューの下にあります。カウンターを選択してから、[選択したオブジェクトのインスタンス] ペインの [MATLAB] を選択します。

システム メモリ

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

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

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

limit - total (in bytes)

Windows タスク マネージャーで確認します。パフォーマンス/コミット チャージ

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

memory
Maximum possible array:            14253 MB (1.495e+10 bytes) *
Memory available for all arrays:            14253 MB (1.495e+10 bytes) *
Memory used by MATLAB:              747 MB (7.833e+08 bytes)
Physical Memory (RAM):            12279 MB (1.288e+10 bytes)

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

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

userview = memory
userview = 

    MaxPossibleArrayBytes: 1.4957e+10
    MemAvailableAllArrays: 1.4957e+10
            MemUsedMATLAB: 784044032

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

[user sys] = memory;

%  --- Largest array MATLAB can create ---
user.MaxPossibleArrayBytes
ans =
   1.4956e+10
%  --- Memory available for data ---
user.MemAvailableAllArrays
ans =
   1.4956e+10
%  --- Memory used by MATLAB process ---
user.MemUsedMATLAB
ans =
   784039936
%  --- Virtual memory for MATLAB process ---
sys.VirtualAddressSpace
ans = 
    Available: 8.7910e+12
        Total: 8.7961e+12
%  --- Physical memory and paging file ---
sys.SystemMemory
ans = 
    Available: 1.4956e+10
%   --- Computer's physical memory ---
sys.PhysicalMemory
ans = 
    Available: 2.7093e+09
        Total: 1.2876e+10

関連する例

詳細

すべて折りたたむ

ヒント

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 を再起動しない限り、このメモリをより大きい配列のために空けることはできません。

参考

| | | | | | |

R2008a で導入

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