2013-12-09 6 views
6

बढ़ाने की आवश्यकता है मेरे पास 32 बिट विंडोज 7 ऑपरेटिंग सिस्टम के साथ Coure2Duo पीसी पर 4 जीबी राम स्थापित है। मैंने पेजिंग आकार को 106110 एमबी तक बढ़ा दिया है। लेकिन यह सब करने के बाद मैं अधिकतम सरणी आकार में काफी वृद्धि करने में सक्षम नहीं हूं।मुझे अधिकतम संभव सरणी आकार

के बाद चश्मा

memory 
Maximum possible array:    129 MB (1.348e+08 bytes) * 
Memory available for all arrays: 732 MB (7.673e+08 bytes) ** 
Memory used by MATLAB:    563 MB (5.899e+08 bytes) 
Physical Memory (RAM):    3549 MB (3.722e+09 bytes) 

* Limited by contiguous virtual address space available. 
** Limited by virtual address space available. 

कृपया जल्द से जल्द पर मेरी मदद कर रहे हैं। मैं डबल प्रारूप में 48 + एमबी आकार की फ़ाइल को पढ़ने में भी सक्षम नहीं हूं।

+0

यह सुपर उपयोगकर्ता एसई –

+0

दाफ्ट प्रश्न के लिए एक प्रश्न है, लेकिन क्या आपको वास्तव में उन विशाल सरणी की आवश्यकता है? क्या आप इसके बजाय भाग पर काम कर सकते हैं या अपना एल्गोरिदम बदल सकते हैं? –

+0

मैं गंभीर हूं; वाई लगता है कि चश्मा मेरे उपयोग के लिए काफी अच्छे हैं, लेकिन कुछ कैसे वे मुझे डबल प्रारूप में 50 एमबी से बड़ी फ़ाइल लोड करने की अनुमति नहीं देते हैं। बस यह पता लगाने की कोशिश कर रहा है कि क्या समस्या है। – MalikAnasAhmad

उत्तर

0

आप 3GB switch सेट करने का प्रयास कर सकते हैं, शायद यह संभव स्मृति को बढ़ाता है। अन्यथा: 64 बिट ओएस पर स्विच करें। आपका सिस्टम 547 एमबी रैम को बर्बाद कर देता है क्योंकि इसके लिए कोई पता नहीं है।

+0

उत्तर के लिए धन्यवाद। क्या आपको नहीं लगता कि इस तरह की चश्मा 60 एमबी फ़ाइल का समर्थन करने के लिए पर्याप्त हैं। मुझे नहीं पता कि वे मुझे इतनी छोटी फाइल क्यों नहीं दे रहे हैं। मैंने कार्य प्रबंधक की निगरानी की है और भौतिक स्मृति अपने पूर्ण उपयोग को नहीं दिखाती है। सेटिंग्स के साथ कुछ चीज गलत है। क्या आप मुझे मार्गदर्शन कर सकते हैं कि कौन सी चीजें जांचने की इच्छा है या मैं गलत क्या कर सकता हूं – MalikAnasAhmad

+0

आपका सरणी आकार संगत पता स्थान से सीमित है। पर्याप्त मुफ्त भौतिक स्मृति है, लेकिन मुक्त पते खंडित हैं। – Daniel

+0

तो मैं संगत पता स्थान कैसे बढ़ा सकता हूं ??? – MalikAnasAhmad

3

MATLAB के लिए मेमोरी साफ़ करने के लिए आप दो चीजें कर सकते हैं। चूंकि आप प्रोग्राम के 32-बिट संस्करण का उपयोग कर रहे हैं, इसलिए आप आमतौर पर 2 जीबी तक सीमित हैं। प्रोग्राम खोलते समय /3GB switch का उपयोग करके उस प्रोग्राम में अतिरिक्त 1 जीबी रैम उपलब्ध है।

दूसरा, आपको pack() फ़ंक्शन का उपयोग करने पर विचार करना चाहिए, जो contiguous मेमोरी स्पेस को खाली करने के लिए रैम में चर को पुनर्व्यवस्थित करता है। यह, किसी भी चीज़ से अधिक, व्यक्तिगत सरणी खोलने की आपकी क्षमता को प्रभावित कर रहा है।

याद रखें: आप यह पता लगा सकते हैं कि वेरिएबल प्रकार के आकार से उपलब्ध स्मृति राशि को विभाजित करके कितनी वस्तुएं सरणी रखती हैं। Double चर प्रत्येक 8 बाइट्स लेते हैं। आपके 12 9 एमबी स्पेस को एक ही सरणी में लगभग 16.85 मिलियन double मानों की अनुमति देनी चाहिए।

आप MATLAB में memory functions का उपयोग कर स्मृति उपयोग के बारे में जानकारी देख सकते हैं।

  • memory स्मृति जानकारी
  • inmem आप चर और कार्यों स्मृति में संग्रहीत
  • clear आप विशिष्ट चरों या कार्यों की स्मृति को खाली करने के लिए अनुमति देगा दिखाएगा को दर्शाता है।
+1

आह, यह पुरानी यादें वापस लाता है। एक बार जब मैं स्विच करता हूं 64-बिट विंडोज + MATLAB, मैंने कभी पीछे नहीं देखा। बेहतर मेमोरी प्रबंधन। – chappjc

+0

@philopthegreat स्पष्ट mmeory को साफ़ नहीं कर रहा है, यह वर्कस्पेका से एक चर को साफ़ करता है लेकिन यह स्मृति से स्थान को खाली नहीं करता है। कोई सुझाव वह या यह मेरे पीसी jsut – MalikAnasAhmad

संबंधित मुद्दे