سؤال

SandCastle غير قادر على معالجة مكتبة الدرجة الخاصة بنا لأنه تعطل باستثناء OutofmoryException أثناء تحويل XSL.

ماذا يمكننا أن نفعل حيال ذلك، باستثناء ما هو واضح، شراء المزيد من الذاكرة؟ المشكلة هي أن هذه هي آلات المطور الخاصة بنا مع ذاكرة 3.3GB على نظام التشغيل 32 بت، لذلك في الأساس، يجب علينا الترقية إلى ذاكرة 64 بت وأكثر (والتي لن تحدث لفترة من الوقت) أو إعداد خادم افتراضي قم بذلك مع الكثير من الذاكرة (والتي ستؤثر على خوادم الإنتاج).

أشك بجدية أن لدينا أكبر مكتبة فئة في العالم تتطلب ملفات المساعدة، فما الخيارات التي لدينا؟ هل هناك سحر "لا تعطل مع الأخطاء خارج الذاكرة" هل نسينا أن أطفئ؟

هل كانت مفيدة؟

المحلول

إذا كنت على نوافذ 32 بت، فلن تتمكن عملية المستخدم الخاصة بك إلا من معالجة ذاكرة 2 غيغابايت يوميا (يتم تشغيل 3 جيجابايت كعنوان كبير). يتم استخدام 2 جيجابايت في كل شيء في هذه العملية، وبالتالي فإن وقت التشغيل .NET، المكتبات القياسية والحجز وما إلى ذلك كلها تأخذ تشاك. في تجربتي التي تترك حوالي 1.5 جيجابايت لتطبيقات .NET على 32 بت.

يمكنك الوصول إلى المزيد من الذاكرة باستخدام تبديل العنوان الكبير، لكنه لا يأتي مجانا إذا كنت على 32 بت ويندوز. ستتيح الانتقال إلى 64 بت ويندوز تطبيقك 32 بت الوصول إلى مساحة عنوان 32 بت بأكمله وبالتالي تعطيك مساحة تصل إلى 4 جيجابايت.

لقد كتبت مؤخرا إدخال مدونة مع تفاصيل حول استخدام الذاكرة لتطبيقات .NET، ولكن منذ أن قمت بلوق الدنماركية، قد لا تتمكن من قراءتها. ومع ذلك، إذا كنت ترغب في الحصول على مظهر، فإن الرابط هو: http://kodehoved.dk/؟p=156.

يمكنك أيضا العثور على وظيفة مدونة MSDN هذه ذات صلة: http://blogs.msdn.com/maoni/archive/2007/05/15/64-bit-vs-32-bit.aspx.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top