2011-01-21 12 views
10

Windowsマシンでは、MATLABユーザーはmemoryまたはfeature memstatsコマンドを使用できます。しかし、マシン上でこれらの作業のどちらも、次のように失敗:Macのmatlab "memory"関数?

 
>> memory 
??? Error using ==> memory 
Function MEMORY is not available on this platform. 

>> feature memstats 
??? Error using ==> feature 
An unknown feature was specified 

誰に、MATLAB Macのメモリ使用量に関する情報にアクセスする方法を知っていますか?

+0

この質問も参照してください:http://stackoverflow.com/questions/5932598 – texnic

答えて

5

memoryの機能を再現するコマンドが見つかりませんでした。しかし、あなたのシステムにどれくらいの総メモリがあるか分かっていれば、変数が現在使用しているメモリの量と空き容量を見積もるためにwho(またはファイル交換のvsize)を使うことができます。

ところで、あなたは常に

java.lang.Runtime.getRuntime.maxMemory 
java.lang.Runtime.getRuntime.totalMemory 
java.lang.Runtime.getRuntime.freeMemory 

MatlabのメモリとJavaメモリが異なっていることに注意してください呼び出すことで、Javaメモリーを知ることができます - JavaのメモリがUIのために使用され、数値を含むだけでなく、他のJavaをオブジェクトであり、memoryは変数と計算に利用可能なメモリを報告します。

+0

残念なことに、この回答も@philippeによるものでも、matlabにどのくらい割り当てられているか、matlabエンジンでどのくらい使用されているか、メモリが連続していることを確認することはできません。 http://www.mathworks.com/support/tech-notes/1100/1106.html))。しかし、これはかなり良い回避策です。 – eykanal

+0

@eykanal:Linuxシステムでは従来よりメモリ管理が優れていましたが(Windowsは最近改良されたようですが)、最大ブロックのサイズは主にWindowsの問題でした。しかし、Macのメモリ量を知らないIMHOの本当の問題は、ページングをいつ開始するかわからないことです。 – Jonas

+0

さて、Matlabは32ビットか32ビットかに応じて、[利用可能なメモリの一部](http://www.mathworks.com/support/tech-notes/1100/1107.html)のみを使用しているようです。 64ビットアーキテクチャ私は非常に大きなデータセットを扱っているので、大きな違いがあります。 – eykanal

1

memoryは、Windowsシステムでのみ使用できます。

代わりにtop組み込みのMacコマンドを試すことができます。

1

私はこの質問が古いですけど、すでに答えが、この答えを探して誰、それは玉葉を使用するすべてのプラットフォーム上で動作の代替のために:

allvars = whos; 
memused = sum([allvars.bytes]); 

これは、あなたが唯一のワークスペースビーイングを持っていると仮定しあなたのスクリプト/関数で使用されます。複数のワークスペースを使用するスクリプトがある場合、すべての異なるワークスペースを指定してそれらを一緒に追加する必要があります。