2011-01-21 11 views
10

विंडोज मशीनों पर, MATLAB उपयोगकर्ता या तो memory या feature memstats आदेशों का उपयोग कर सकते हैं।matlab "मेमोरी" फ़ंक्शन?

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

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

किसी पर एक मैक में matlab स्मृति के उपयोग के बारे में जानकारी तक पहुंचने का तरीका पता है: हालांकि, एक मशीन पर इन काम के न, इस प्रकार में नाकाम रहने के?

+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 

नोट करके प्राप्त कर सकते है कि मैटलैब स्मृति और जावा स्मृति अलग हैं - जावा स्मृति यूआई के लिए प्रयोग किया जाता है आंकड़े, साथ ही अन्य जावा सहित, ऑब्जेक्ट्स, जबकि memory चर और गणना के लिए उपलब्ध स्मृति की रिपोर्ट करता है।

+0

दुर्भाग्यवश, न तो यह उत्तर और न ही @ फिलिप द्वारा एक मुझे यह देखने दो कि मैटलैब को कितना आवंटित किया गया है, मैटलैब इंजन द्वारा कितना उपयोग किया जा रहा है, या यह सुनिश्चित करें कि स्मृति संगत है, जिनमें से सभी कारक हैं ([लिंक] (http://www.mathworks.com/support/tech-notes/1100/1106.html))। हालांकि, यह एक बहुत अच्छा कामकाज है। – eykanal

+0

@eykanal: लिनक्स सिस्टम पारंपरिक रूप से बेहतर मेमोरी प्रबंधन था (हालांकि विंडोज हाल ही में बहुत सुधार हुआ है), इसलिए विंडोज़ में सबसे बड़ा ब्लॉक का आकार ज्यादातर एक मुद्दा था। हालांकि, मैक पर स्मृति की मात्रा को नहीं जानते हुए आईएमएचओ असली मुद्दा यह है कि आप नहीं जानते कि आप पेजिंग कब शुरू करते हैं। – Jonas

+0

ठीक है, वह, और मैटलैब स्पष्ट रूप से केवल [उपलब्ध स्मृति का सबसेट] (http://www.mathworks.com/support/tech-notes/1100/1107.html) का उपयोग करता है, इस पर निर्भर करता है कि यह 32- या है 64-बिट आर्किटेक्चर। मैं बहुत बड़े डेटासेट से निपट रहा हूं ताकि इससे एक महत्वपूर्ण अंतर हो। – eykanal

1

memory केवल विंडोज सिस्टम पर उपलब्ध है।

आप इसके बजाय top अंतर्निहित मैक कमांड का उपयोग करने का प्रयास कर सकते हैं।

1

मैं जानता हूँ कि इस सवाल पुराना है और पहले से ही उत्तर है, लेकिन इस सवाल का जवाब की तलाश में किसी और के लिए, एक वैकल्पिक कि सभी प्लेटफार्मों पर काम करता है यह कौन उपयोग करने के लिए:

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

इसका मतलब यह है कि आप केवल एक ही कार्यक्षेत्र से किया जा रहा है आपकी स्क्रिप्ट/फ़ंक्शन द्वारा उपयोग किया जाता है। यदि आपके पास एक स्क्रिप्ट है जो एकाधिक वर्कस्पेस का उपयोग करती है, तो आपको सभी अलग-अलग कार्यक्षेत्रों को निर्दिष्ट करने और उन्हें एक साथ जोड़ने की आवश्यकता होगी।