आप 64-बिट आर्किटेक्चर में अपना एप्लिकेशन बनाकर ~ 2 जीबी की तुलना में अधिक मेमोरी आवंटित कर सकते हैं, जिसके लिए आप एक विजुअल स्टूडियो में नया निर्माण कॉन्फ़िगरेशन, और एप्लिकेशन का निर्माण केवल विंडोज के 64-बिट संस्करणों पर ही चलाया जाएगा। .NET में, आपके एप्लिकेशन के लिए डिफ़ॉल्ट "कोई भी CPU" बिल्ड विकल्प का उपयोग करके, मुझे लगता है कि मैं केवल ढेर से लगभग 1.5 जीबी मेमोरी आवंटित करने में सक्षम हूं (यहां तक कि 64-बिट विंडोज मशीन पर भी), क्योंकि वास्तव में एप्लिकेशन जब यह "किसी भी CPU" मोड में बनाया गया है तो केवल 32-बिट मोड में चलता है। लेकिन x64 आर्किटेक्चर को संकलित करके, आप अपने आवेदन के निष्पादन के दौरान ढेर से अधिक, अधिक स्मृति आवंटित कर सकते हैं, और मैं समझाऊंगा कि आपके आवेदन के लिए x64 बिल्ड कैसे बनाएं:
फिर से, सामान्य (डिफ़ॉल्ट) आपके .NET प्रोजेक्ट में "कोई भी CPU" बिल्ड विकल्प, आपका एप्लिकेशन हमेशा 32-बिट मोड के तहत चलाया जाएगा, यहां तक कि 64-बिट विंडोज ओएस पर भी। इसलिए आप आवेदन निष्पादन के दौरान लगभग 1.5 से 2 जीबी रैम मेमोरी आवंटित नहीं कर पाएंगे। अपने .NET अनुप्रयोग को सही 64-बिट मोड में चलाने के लिए, आपको बिल्ड कॉन्फ़िगरेशन मैनेजर में जाना होगा और x64 आर्किटेक्चर के लिए एक बिल्ड प्रकार बनाना होगा, और फिर उस बिल्ड प्रकार का स्पष्ट रूप से उपयोग करके x64 के लिए अपने प्रोग्राम को पुन: संकलित करना होगा। 64 निर्माण मोड विकल्प निम्न चरणों का उपयोग अपने नेट समाधान के लिए बनाया जा सकता है:
- दृश्य स्टूडियो में "समाधान एक्सप्लोरर" फलक, सही समाधान आइकन पर क्लिक करें और से "कॉन्फ़िगरेशन मैनेजर" विकल्प का चयन पॉप-अप मेनू। यह .NET समाधान फ़ाइल के लिए "कॉन्फ़िगरेशन प्रबंधक" संवाद विंडो खोल देगा।
- दाईं ओर, "कॉन्फ़िगरेशन प्रबंधक" संवाद के शीर्ष पक्ष पर, नीचे तीर पर क्लिक करें और "& ltnew & gt" विकल्प का चयन करें। यह "नया समाधान प्लेटफार्म" संवाद खुल जाएगा।
- "प्लेटफ़ॉर्म" विकल्प के लिए "नया समाधान प्लेटफ़ॉर्म" संवाद में, ड्रॉप-डाउन मेनू से "x64" चुनें। फिर "ओके" बटन पर क्लिक करें और नया, x64 बिल्ड विकल्प अब कॉन्फ़िगरेशन प्रबंधक संवाद में उपलब्ध होगा।
- फिर, "कॉन्फ़िगरेशन प्रबंधक" संवाद पर, "सक्रिय समाधान प्लेटफ़ॉर्म" ड्रॉप-डाउन मेनू में "x64" चुनें। "बंद करें" बटन पर क्लिक करें।
- विजुअल स्टूडियो "समाधान एक्सप्लोरर" फलक में, सीएस प्रोजेक्ट आइकन पर राइट क्लिक करें और पॉप-अप मेनू (इस मेनू के नीचे अंतिम विकल्प) से "गुण" विकल्प चुनें। यह सीएस परियोजना गुण विंडो खुल जाएगा।
- सीएस प्रोजेक्ट गुण विंडो के बाईं ओर, अपने कोड प्रोजेक्ट के निर्माण गुण दिखाने के लिए "बिल्ड" टैब पर क्लिक करें। इस विंडो के शीर्ष पर, ध्यान दें कि "प्लेटफ़ॉर्म" अब "x64" (डिफ़ॉल्ट "किसी भी CPU" विकल्प के विपरीत) होना चाहिए। यदि "प्लेटफ़ॉर्म" ड्रॉप-डाउन "x64" नहीं दिखाता है, तो आपको इसे अभी चुनना चाहिए।
- फिर बस अपना कोड बनाएं और "बिन" फ़ोल्डर में, अब आपके पास अपने 64-बिट निर्माण के साथ एक x64 फ़ोल्डर होना चाहिए।
64-बिट पर अपने आवेदन की एक 64-बिट का निर्माण का उपयोग करते हुए अगर आपके पास विंडोज ओएस अपने कार्यक्रम स्मृति के ~ 2GB की तुलना में अधिक आवंटित करने के लिए, शायद 2^64 पते के रिक्त स्थान के लिए ऊपर की अनुमति देगा (रैम और डिस्क स्थान उपलब्ध है, जो इस प्रतिक्रिया को लिखने के समय के रूप में असली सीमित कारक हैं)।
यदि आप अभी भी अपने एप्लिकेशन में मेमोरी से बाहर हो रहे हैं, तो आप विंडोज मेमोरी पेज फ़ाइल का आकार भी बढ़ा सकते हैं। विंडोज़ पर, पेज फ़ाइल ऑपरेटिंग सिस्टम को रैम मेमोरी स्पेस से बाहर होने पर मेमोरी को रैम से डिस्क में स्थानांतरित करने की अनुमति देती है। लेकिन डिस्क से और उसके लिए रैम मेमोरी के वर्गों को स्थानांतरित करने में बड़ी समय लगती है, इसलिए यह आपके आवेदन के प्रदर्शन पर वास्तविक हिट हो सकती है। प्रदर्शन के बावजूद, पृष्ठ के आकार को बढ़ाकर, आप (सिद्धांत रूप में) पृष्ठ फ़ाइल को उतना ही बड़ा बना सकते हैं जितना सी: आपके विंडोज मशीन के सी: ड्राइव पर उपलब्ध है। उस स्थिति में, आपका आवेदन आवंटित करने में सक्षम होगा, उदाहरण के लिए, आपके प्रोग्राम के निष्पादन के दौरान 4 टीबी मेमोरी (या जो भी आपके पृष्ठ फ़ाइल आकार को सेट किया गया है) तक आवंटित करने में सक्षम होगा। अपनी विंडोज मशीन के लिए पेज फ़ाइल सेटिंग्स को बदलने के लिए, निम्न कार्य करें:
- "इस पीसी" पर राइट क्लिक करके "सिस्टम गुण" संवाद खोलें और पॉप-अप मेनू पर "गुण" विकल्प चुनकर। इसे "स्टार्ट" और gt "कंट्रोल पैनल" और gt "सिस्टम और सिक्योरिटी" और gt "सिस्टम" पर जाकर विंडोज़ (विंडोज 10, विन 2012 सर्वर, आदि ...) के बाद के संस्करणों में भी पूरा किया जा सकता है।
- "सिस्टम" संवाद के बाईं तरफ, "उन्नत सिस्टम गुण" विकल्प पर क्लिक करें। यह विंडोज के लिए विरासत "सिस्टम गुण" संवाद का "उन्नत" टैब दिखाएगा।
- "सिस्टम गुण" संवाद के "उन्नत" टैब पर, "प्रदर्शन" बॉक्स में "सेटिंग्स" बटन पर क्लिक करें। यह "प्रदर्शन विकल्प" संवाद खुल जाएगा।
- "प्रदर्शन विकल्प" संवाद पर, Windows मेमोरी पेज फ़ाइल के लिए वर्तमान आकार सेटिंग देखने के लिए "उन्नत" टैब पर क्लिक करें।
- पृष्ठ फ़ाइल आकार बढ़ाने के लिए, "बदलें" बटन पर क्लिक करें और "वर्चुअल मेमोरी" संवाद खोला जाएगा।
- "वर्चुअल मेमोरी" संवाद पर, "कस्टम:" ड्राइव का चयन करें, फिर "कस्टम आकार" के अंतर्गत, "प्रारंभिक" और "अधिकतम" आकार सेट करें। आप सी: ड्राइव पर अधिकतम मात्रा में खाली स्थान तक किसी भी आकार का उपयोग कर सकते हैं, लेकिन यह परिवर्तन हार्ड ड्राइव पर पृष्ठ फ़ाइल के लिए उस स्थान को आरक्षित करेगा।
- फिर नई सेटिंग्स को करने के लिए सभी संवादों पर "ठीक" पर क्लिक करें। फिर यह सुनिश्चित करने के लिए अपने कंप्यूटर को रीबूट करें कि सभी परिवर्तन ठीक से पूरा हो गए हैं और नई पृष्ठ फ़ाइल सेटिंग्स संचालन में हैं।
वैसे भी, मुझे आशा है कि इससे लोगों को यह समझने में मदद मिलेगी कि वे 64-बिट विंडोज मशीन पर चलते समय भी .NET अनुप्रयोग में 1.5-2 जीबी मेमोरी सीमा मुद्दे में क्यों चल सकते हैं। यह लोगों के लिए एक बहुत भ्रमित मुद्दा हो सकता है और मुझे उम्मीद है कि मेरी व्याख्या समझ में आती है। यदि आवश्यक हो तो कृपया इस उत्तर के बारे में प्रश्नों के साथ मुझे संदेश देने में संकोच न करें।
धन्यवाद, यह मुझे एक विचार देता है। हालांकि, लिंक वास्तव में सहायक नहीं हैं। –
केवल सर्वर सीएलआर मेमोरीलिमिट कॉन्फ़िगरेशन का उपयोग करता है। वर्कस्टेशन सीएलआर हमेशा जितनी मेमोरी प्राप्त कर सकता है उतनी मेमोरी का उपयोग करता है। – ezolotko
@ezolotko - मुझे कभी पता नहीं था कि एक अंतर था। – MyItchyChin