का विकास और डिबगिंग मेरे पास एक सी # ऐप है जो 32-बिट लाइब्रेरी से लिंक होना चाहिए और अधिकतम मेमोरी संभव (इमेजिंग ऐप) का उपयोग करने की आवश्यकता है; हम XP64 डेस्कटॉप पर ऐप चलाते हैं, इस प्रकार हम WOW64 का उपयोग कर रहे हैं, x86 के लिए विजुअल स्टूडियो में लक्ष्यीकरण लक्ष्य बनाते हैं (और editbin /largeaddressaware
पोस्ट-बिल्ड कर रहे हैं)। हम कुछ समस्याओं का सामना कर रहे हैं:मेम-होगिंग सी # ऐप्स
दृश्य स्टूडियो में निर्मित डिबगर, हम केवल कभी स्मृति के 2GB (~ एप्लिकेशन को 1.5gb, प्लस भूमि के ऊपर)
से चल रहा है उपयोग कर सकते हैं कमांड लाइन, ऐप 3 जीबी मेमोरी देख सकता है, लेकिन माइक्रोसॉफ्ट दस्तावेज कहेंगे कि हमें 4 जीबी देखना चाहिए।
किसी को मुझे बताओ कैसे पूर्ण 4GB कि मंच इसे देने के लिए सक्षम होना चाहिए देखने के लिए एक WOW64 सी # अनुप्रयोग पाने के लिए कर सकते हैं?
इसके अलावा, क्या कोई मुझे बता सकता है कि /largeaddressaware
बिट का पालन करने के लिए विजुअल स्टूडियो (वीएस 2008, अन्यथा वीएस 9 0 के रूप में जाना जाता है) डीबगर कैसे प्राप्त करें और ऐप मेमोरी को 2 जीबी तक सीमित करना बंद करें?
मैं वीएस 80 और वीएस 9 0 में वही व्यवहार देखता हूं; .NET Framework 3.5, 3.0, और 2.0 के बीच भी कोई अंतर नहीं है। यहां एक छोटा सी # प्रोग्राम है जो समस्याओं को दिखाता है; x86, editbin /largeaddressaware
के लिए निर्माण करें, फिर सी # के लिए उपलब्ध स्मृति में अंतर देखने के लिए कमांड लाइन से चलाए गए अंतर्निहित डीबगर बनाम चलाएं।
namespace MemoryAllocTest
{
class Program
{
static void Main(string[] args)
{
const int allocSize = 1024 * 1024;
List<byte[]> myMem = new List<byte[]>();
UInt64 totalAlloc = 0;
while (true)
{
myMem.Add(new byte[allocSize]);
totalAlloc += allocSize;
Console.WriteLine("{0} allocs: {1}MB total",
myMem.Count, totalAlloc/(1024 * 1024));
}
}
}
}
क्या आप एमएसआईएल एक्सई फाइलों पर एडिटबिन चला सकते हैं? –