2011-01-21 15 views
10

Windows makinelerinde, MATLAB kullanıcıları memory veya feature memstats komutlarını kullanabilirler.matlab "bellek" işlevi?

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

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

kimse Mac'te in-matlab bellek kullanımı hakkında bilgilere erişmek için bir yol biliyor mu şu şekildedir: Ancak, bir makinede bu işin ne, başarısız?

+0

Ayrıca şu soruya da bakınız: http://stackoverflow.com/questions/5932598. – texnic

cevap

5

memory'un işlevselliğini yeniden üreten bir komut bulamadık. Bununla birlikte, sisteminizin toplam belleğinin ne kadar olduğunu biliyorsanız, değişkenlerinizin şu anda ne kadar bellek kullandığını ve böylece ne kadar boş alan olduğunu tahmin etmek için who (veya daha fazla ayrıntı için vsize dosya değişiminden) kullanabilirsiniz.

arada

, her zaman Matlab bellek ve Java bellek farklı olduğunu

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

Not arayarak Java bellek hakkında bilgi bulabilirsiniz - Java hafıza rakamlar, hem de diğer java dahil UI için kullanılır nesneler, memory ise, değişkenler ve hesaplamalar için mevcut olan belleği bildirir.

+0

Ne yazık ki, ne bu cevap ne de @philippe tarafından matlab'a ne kadar tahsis edildiğini, matlab motorunun ne kadarının kullanıldığını veya hafızanın bitişik olmasını sağladığını görmeme izin verin ([link] (http://www.mathworks.com/support/tech-notes/1100/1106.html)). Ancak, bu oldukça iyi bir çözüm. – eykanal

+0

@eykanal: Linux sistemlerinin geleneksel olarak daha iyi bir bellek yönetimine sahip olmalarına rağmen (Windows son zamanlarda çok daha iyi bir gelişme göstermiş gibi görünüyor), bu nedenle en büyük bloğun boyutu çoğunlukla Windows'ta bir sorundu. Ancak, bir Mac üzerinde bellek miktarını bilmemesi ile IMHO gerçek sorunu, çağrı başlattığınızda bilmiyorum oldu. – Jonas

+0

Eh, bu, ve Matlab görünüşe göre sadece bir 32-olup olmadığını [mevcut bellek bir alt kümesi] (http://www.mathworks.com/support/tech-notes/1100/1107.html) kullanır 64 bit mimari. Çok büyük veri kümeleriyle uğraşıyorum, bu da önemli bir fark yaratıyor. – eykanal

1

memory yalnızca Windows sistemlerinde kullanılabilir.

Bunun yerine top yerleşik Mac komutunu kullanmayı deneyebilirsiniz. Yalnızca bir çalışma alanı varlığımıza sahip

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

Bu varsayar:

1

Bu soru eski ve zaten cevaplanmış, ama başkası için bu yanıt için o whos kullanmak için tüm platformlarda çalışan bir alternatif arayan biliyorum komut dosyanız/işleviniz tarafından kullanılır. Birden çok çalışma alanı kullanan bir komut dosyanız varsa, tüm farklı çalışma alanlarını belirtmeniz ve birlikte eklemeniz gerekir.