سؤال

ما هي أفكارك عنها؟

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

هل تعتقد أن التعليمات البرمجية المدارة قابلة للحياة للتطبيقات الكبيرة الحجم؟ (تطبيقات مثل فوتوشوب، 3ds ماكس, مايا, XSI., ، إلخ، والتي هي كثيفة حسابية ولكن ليس لديها متطلبات الوقت في الوقت الفعلي للألعاب (إلى درجة).

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

المحلول

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

إلى جانب CLR قريبة جدا من الأداء غير المغيرين أن 99 من أصل 100 حالة لا ينبغي أن يفكروا في ذلك. وحتى إذا سقطت في المخيم الذي يحتاج إلى الأداء الذي يجب عليك كتابة معظم التعليمات البرمجية الخاصة بك في المساحة المدارة ثم قم بالتبديل إلى غير المغير في الأجزاء التي يخبرك Profiler بها.

حول الألعاب على وجه الخصوص: كان هناك عدد قليل من الألقاب الأكبر تحول في مونو الآن اكتسب الأداء، لأنهم يمكنهم كتابة كل شيء في كود مانجر ولم يتعين عليهم اللجوء إلى لغات البرمجة النصية للأجزاء المجردة مثل AI.

نصائح أخرى

أعتقد أنك تستطيع أن تفعل تطبيقات كبيرة مع .NET. هناك العديد من الأمثلة هناك:

  • تتم كتابة أجزاء من VisualStudio في .NET (مثل محرر WinForms Editor و WPF)
  • يتم كتابة مزيج التعبير في .NET و WPF
  • يستخدم Stackoverflow .NET و ASP.NET، كما تفعل العديد من المواقع الأخرى.
  • في VisualStudio 2010، تتم كتابة المحرر الجديد (استبدال التنفيذ الحالي) في .NET و WPF

كلمة واحدة حول التطبيقات المكثفة على حسابي

من ناحية أخرى، لديك الكثير من المزايا:

  • (تقريبا) لا تسرب الذاكرة (جامع القمامة)
  • تحصل على استثناءات عندما يكون هناك خطأ ما، لا تحطم بدون معلومات
  • يتم تشغيل التعليمات البرمجية على قدم المساواة على X32 و X64، دون الحاجة إلى تغيير أو إعادة ترجمة التطبيق
  • C # أسهل في الاستخدام من C ++ (مندوب، ومجموعات، LINQ، إلخ)
  • ...

لأنك ذكرت فوتوشوب ... paint.net. هي حزمة رسومات جميلة (لا تصل إلى Photoshop، ولكن مع ذلك مثيرة للإعجاب)، مكتوبة في C #.

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