2011-01-21 8 views
10

En máquinas con Windows, los usuarios de MATLAB pueden usar los comandos memory o feature memstats. Sin embargo, ninguno de estos trabajos en una máquina, en su defecto de la siguiente manera:matlab función "memoria" en mac?

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

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

¿Alguien sabe de una manera de acceder a información sobre el uso de memoria en Matlab en un Mac?

+0

Consulte también esta pregunta: http://stackoverflow.com/questions/5932598. – texnic

Respuesta

5

No he podido encontrar un comando que reproduzca la funcionalidad de memory. Sin embargo, si sabe cuánta memoria total tiene su sistema, puede usar who (o vsize desde el intercambio de archivos para obtener más detalles) para estimar cuánta memoria están usando actualmente sus variables y, por lo tanto, cuánto espacio libre tiene.

Por cierto, siempre se puede encontrar a cabo sobre la memoria de Java llamando

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

Tenga en cuenta que la memoria Matlab y la memoria de Java son diferentes - la memoria de Java se utiliza para la interfaz de usuario, incluyendo figuras, así como otros java objetos, mientras que memory informa la memoria disponible para variables y cálculos.

+0

Desafortunadamente, ni esta respuesta ni la de @philippe me permiten ver cuánto se asigna a matlab, cuánto está siendo utilizado por el motor matlab, o asegurar que la memoria es contigua, todos los cuales son factores ([link] (http://www.mathworks.com/support/tech-notes/1100/1106.html)). Sin embargo, esta es una buena solución. – eykanal

+0

@eykanal: Los sistemas Linux han tenido tradicionalmente una mejor administración de la memoria (aunque Windows parece haber mejorado mucho recientemente), por lo que el tamaño del bloque más grande era principalmente un problema en Windows. Sin embargo, el problema real de mi humilde opinión con el hecho de no saber la cantidad de memoria en una Mac ha sido que no se sabe cuándo se inicia la búsqueda. – Jonas

+0

Bueno, eso, y que Matlab aparentemente solo usa [un subconjunto de memoria disponible] (http://www.mathworks.com/support/tech-notes/1100/1107.html), dependiendo de si es un 32- o Arquitectura de 64 bits Estoy tratando con conjuntos de datos muy grandes, por lo que hace una diferencia significativa. – eykanal

1

memory solo está disponible en sistemas Windows.

Puede intentar usar el comando integrado de Mac top.

1

Sé que esta pregunta es viejo y ya ha respondido, pero para una persona que quiere para esta respuesta, una alternativa que funciona en todas las plataformas que utilice whos:

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

esto supone es suficiente con ser un espacio de trabajo utilizado por su script/función. Si tiene un script que usa varios espacios de trabajo, deberá especificar todos los espacios de trabajo diferentes y agregarlos.

Cuestiones relacionadas