لماذا يتم تشغيل برامجي من بطاقة SD الخاصة بي ببطء شديد؟

StackOverflow https://stackoverflow.com/questions/337313

سؤال

عند نقل تطبيق .Net Compact Framework الخاص بي إلى بطاقة SD لجهاز Windows CE، يتم تنفيذ البرنامج بشكل أبطأ ثم يتم تشغيله من الذاكرة الداخلية.

اعتقدت أن بدء التشغيل قد يكون أبطأ، لكن هذا هو البرنامج بأكمله.لا يوجد إدخال/إخراج لبطاقة التخزين.

لماذا يكون تطبيقي بطيئًا جدًا وكيف يتعامل الإطار المضغوط مع التجميعات ويحملها؟

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

المحلول

وعليها أن تفعل مع الطلب الترحيل. لا يمكن تشغيل التطبيق مباشرة من بطاقة SD، وSD ليس وسائل الاعلام للتنفيذ لذلك يجب أن يتم سحبها إلى RAM لتشغيل. ويندوز CE لا يكون عادة مجموعة كبيرة من ذاكرة الوصول العشوائي، وبالتالي فإن محمل لا سحب طلبك بأكمله إلى RAM لتشغيل. بالتأكيد، سوف أكوام وأكوام الخاص بك سيكون في ذاكرة الوصول العشوائي، ولكن مقسم إلى صفحات رمز IL الفعلي في الجمعية نفسها في حسب الحاجة. لقد ترحيلها أيضا إلى عندما يقرر النظام أنه لم يعد في حاجة إلى صفحة معينة.

وهذا الترحيل يمكن أن يكون لها تأثير على الأداء، على الرغم من أنني فوجئت قليلا انه من تأثير كبير إلا إذا كان التطبيق نفسه كبير حقا (مثل إذا كان لديك الكثير من الموارد المضمنة انها الانسحاب من التجمع).

نصائح أخرى

وأنا أتفق مع إجابة "ترحيل الطلب" السابقة التي كتبها ctacke.

حل قد تحاول تنفيذ برنامج محمل من بطاقة SD يقوم بنسخ ملفك الفعلي القابل للتنفيذ وملفات DLL من البطاقة إلى القرص الصلب، ثم تنفيذ برنامجك من أداة التحميل.في عمليات التنفيذ اللاحقة، يمكن للمحمل اكتشاف ما إذا كان إصدار القرص الثابت محدثًا، وإذا كان الأمر كذلك، فما عليك سوى تشغيله مباشرةً.إذا لم يكن إصدار القرص الصلب محدثًا، فسيقوم برنامج التحميل مرة أخرى بنسخ الملفات القديمة من البطاقة ثم تنفيذ البرنامج الفعلي.

لقد قمت بذلك من قبل من خلال برنامج تم تحميله على موقع بعيد على الشبكة، وكان يعمل بشكل جيد للغاية.

وبعض الأجهزة سوف تعطل البرنامج إذا التطبيق على بطاقة الذاكرة الرقمية المؤمنة. يحدث ذلك حين وقف من قبل السلطة على الجهاز.

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