दिलचस्प पोस्ट
सी में, एक वैश्विक वैरिएबल के लिए कई घोषणाएं ठीक क्यों काम करती हैं, लेकिन स्थानीय चर के लिए नहीं? स्पार्क के माध्यम से कैसे खोलें / स्ट्रीम। ज़िप फ़ाइलें? कैसे जावा से maven चलाने के लिए? पूर्ण बनाम पायथन मॉड्यूल का स्पष्ट सापेक्ष आयात एंड्रॉइड में जीएसओएन या किसी अन्य लाइब्रेरी का उपयोग किए बिना स्ट्रोरिंग के रूप में प्रतिक्रिया कैसे प्राप्त करें एंड्रॉइड वेबवीउओ रिक्त / सफेद रेंडर करता है, सीएसएस परिवर्तन या एचटीएमएल बदलाव पर अपडेट नहीं होता है, एनीमेशन तड़का हुआ होता है एंड्रॉइड वेबव्यू "टेलि:" लिंक वेब पेज नहीं मिला दिखाते हैं आईसोमेट्रिक खेल दुनिया को आकर्षित करना तय समय अंतराल के बाद बार-बार Async कार्य को कैसे निष्पादित करें क्लास से XSD स्कीमा कैसे तैयार करें? एंकर लिंक के अंदर बटन फ़ायरफ़ॉक्स में काम करता है, लेकिन इंटरनेट एक्सप्लोरर में नहीं? अपाचे स्पार्क के साथ प्राथमिक कुंजी चयन -> विकल्प अमूर्त अजगर 3.x में string.replace () का उपयोग कैसे करें एक जावा प्रक्रिया के InputStream के लिए लेखन

क्या एक एकल .NET प्रक्रिया के लिए स्मृति सीमा है?

हम वर्तमान में एक एसक्यूएल डाटाबेस से निकाले गए डेटा को पकड़ने के लिए एक कैश-सिस्टम बनाने की सोच रहे हैं और इसे अन्य एप्लिकेशन (वेबसाइट, वेबसेवी आदि) के लिए उपलब्ध कराते हैं। हम कैश को विंडो सेवा के रूप में चलने की कल्पना करते हैं और मूल रूप से एक स्मार्ट शब्दकोश जिसमें कैश प्रविष्टियां हैं। मेरा सवाल है, क्या आवेदन के काम करने की एक सीमा है (यह विंडोज़ सर्वर 2003 के तहत चल रही होगी)? या भौतिक मेमोरी की सीमा क्या है?

Solutions Collecting From Web of "क्या एक एकल .NET प्रक्रिया के लिए स्मृति सीमा है?"

32 बिट या 64 बिट? 32 बिट 2 जीबी है (एक प्रक्रिया के लिए), 64 बिट 1 टीबी (एन्टरप्राइज़ एपर्स 2003 सर्वर) है ।

हालांकि, सीएलआर ऑब्जेक्ट का अधिकतम आकार 64 जीबी पर भी 2 जीबी है ।

अपडेट: ऊपर दी गई जानकारी 2008 में सही थी। अधिक हाल की जानकारी के लिए ओहाड का जवाब देखें। विंडोज 2016 सर्वर में अधिकतम 24 टीबी हो सकती है ।

मैं हाल ही में एक 32 बिट प्रक्रिया पर .NET में स्मृति सीमाओं के आसपास व्यापक रूपरेखा कर रहा हूं। हम सभी इस विचार से बमबारी करते हैं कि हम एक। NET अनुप्रयोग में 2.4 जीबी (2 ^ 31) तक आवंटित कर सकते हैं लेकिन दुर्भाग्य से यह सच नहीं है :(। आवेदन प्रक्रिया में उपयोग करने के लिए बहुत जगह है और ऑपरेटिंग सिस्टम एक महान नौकरी का प्रबंध हमारे लिए है, हालांकि, एनईटी के अपने स्वयं के उपरिव्यय को लगता है जो साधारण वास्तविक अनुप्रयोगों के लिए लगभग 600-800 एमबी के लिए खाते हैं, जो स्मृति सीमा को आगे बढ़ाते हैं। इसका मतलब है कि जैसे ही आप एक पूर्णांक के सरणी आवंटित करते हैं जो 1.4 जीबी, आपको आउटऑफममेरी अपवाद देखने की अपेक्षा करनी चाहिए ()।

जाहिर है 64 बिट में, यह सीमा बाद में होती है (चलो 5 वर्षों में चैट करते हैं :)), लेकिन बढ़ती शब्द आकार के कारण स्मृति में सब कुछ का सामान्य आकार भी बढ़ता है (मुझे लगता है कि ~ 1.7 से ~ 2 बार पा रहा है)

मुझे जो पता है, वह यह है कि ऑपरेटिंग सिस्टम से आभासी स्मृति का विचार निश्चित रूप से आपको एक प्रक्रिया के अंतराल में अंतहीन आवंटन स्थान नहीं देता है। यह केवल इतना है कि पूर्ण 2.4 जीबी एक समय में चलने वाले सभी (कई) अनुप्रयोगों के लिए संबोधित हो।

MSDN से निम्न तालिका आपकी क्वेरी का सबसे सटीक उत्तर है। ध्यान दें कि IMAGE_FILE_LARGE_ADDRESS_AWARE झंडा प्रबंधित कंपाइलर से सीधे सेट नहीं किया जा सकता है, हालांकि सौभाग्य से इसे editbin उपयोगिता के माध्यम से पोस्ट बिल्ड सेट किया जा सकता है 4 जीटी / 3 जीबी ध्वज को संदर्भित करता है

वैकल्पिक शब्द

32 बिट विंडोज पर आप / 3 जीबी ध्वज के साथ विंडोज़ को बूट करके और अपने ऐप को "बड़ा पता जागरूक" के रूप में फ़्लैग करके थोड़ा अधिक मेमोरी प्राप्त कर सकते हैं

मथायस,

प्रत्यक्ष प्रश्न का उत्तर वास्तव में नहीं, लेकिन इस समस्या का सामना करने का एक और तरीका है जो कुछ बड़े नुकसानों के आसपास मिलेगा, जो कैशिंग समाधान के साथ एक प्रमुख सिरदर्द हो सकता है। (माफ करना, मुझे इस मामले पर कोई भी सिफारिश नहीं की गई है।)

हमने इसे पिछले प्रोजेक्ट में कार्यान्वित किया है, और इससे अन्य समस्याएं पैदा हुई हैं।

ऑफ़लाइन पहुंच के लिए, क्या आप डेस्कटॉप पर एसक्यूएल एक्सप्रेस का प्रयोग कर सकते हैं, ताकि आप अपने डेटाबेस के दर्पण को बना सकें (या सिर्फ आपको कैश करने की जरूरत है)? फिर आप को यह करना ज़रूरी है कि आपका एप्लिकेशन कौन सी डेटाबेस को इंगित कर रहा है। आप इसे भी डिफफ स्टोर कर सकते हैं और इन्हें सर्वर पर फिर से चला सकते हैं – हालांकि इसमें अन्य समस्याएं हैं आप स्थानीय प्रतिलिपि पर अनुमतियों को बदल सकते हैं जिससे कि यह केवल पढ़ने के लिए ही हो कि यह कैसे होना चाहिए।

ऐसे शब्दकोश जिन्हें आप एसक्यूएल इंडेक्सस जैसे ध्वनि बनाने की सोच रहे हैं। मैं एसक्यूएल पर आपके लिए काम करने पर भरोसा करता हूं यदि आप इस तरह से वास्तुशिल्प कर सकते हैं क्यों उस पहिया को नया रूप देना है? यदि आप करते हैं, तो आपको कैश एक्सपिरेशन और मेमोरी प्रबंधन के बारे में ध्यान से विचार करना होगा – खासकर यदि यह एक विंडो सेवा है

सौभाग्य,

सैम

किसी भी अन्य विंडोज प्रोग्राम के साथ, आप पता स्थान से सीमित हैं। वह है: 32-बिट पर, आपके पास 2GB का पता स्थान हो सकता है। X64 पर, आपके पास 8TB हो सकता है

यदि आपके पास 8TB भौतिक मेमोरी नहीं है, तो यह पृष्ठ से शुरू होगा।