ما مدى سرعة VB .NET مقارنة بالرمز الأصلي للحساب؟
-
24-09-2019 - |
سؤال
أحتاج إلى كتابة برامج ستقوم بالكثير من الرياضيات. في الغالب سيكون مضاعفة المصفوفة مع الأعداد الصحيحة لحساب DCT. ما مدى أسرع يجب أن أتوقع أن يتم تشغيل الكود في C الأصلي مقارنة بـ VB .NET؟ عامل 2 ، عامل 10 ، عامل 1000 ...؟ هل حاول شخص ما وجمع إحصائيات حول هذا؟
المحلول
يمكنك إضافة سمة صورة جديدة slideshow_image إلى مجموعة سمة المنتجات. هذا المنصب على Pixafy يفسر كيف.سيمكنك ذلك من استرداد جميع الصور الخاصة بجمع المنتج Slidehow من خلال البحث عن الصور slideshow_image .
نصائح أخرى
.NET CODE تم تجميعها إلى الرمز الأصلي قبل التنفيذ ، لذلك لا ينبغي أن يكون أبطأ من الكود الأصلي بشكل عام. كنت أتوقع عامل <10.
علاوة على ذلك ، فإن تقنيات التحسين التكيفي ملف تعريف الكود أثناء تشغيله ، واكتساب معلومات أكثر من برنامج التحويل البرمجي الثابت النموذجي. لذلك ، يمكن لـ JIT اتخاذ قرارات أكثر استنارة لمزيد من التحسينات
VB هو 93.7 ٪ بسرعة C. إذا يمكنك اختيار السيناريو الصحيح.
في الواقع ، إذا كان "C" الأصلي يتضمن مكالمات منتظمة إلى Malloc () و Free () ، فإن أي نوع من لغة Gargage التي تم جمعها مثل VB.NET ستدير دوائر حوله حرفيًا. يمكن أن يكون GC أسرع 10x من Mallocs في حلقاتك الداخلية.
إذا قمت بتفكيك واستخدمت C ، فحاول إعادة استخدام الهياكل التي أعلنتها مرة واحدة فقط بدلاً من صنع تلك الجديدة ، لتجنب هذه المشكلة. قد يكون هذا مفيدًا حتى في VB إذا كان الحل الخاص بك يفسد نفسه. ومع ذلك ، سيكون من الصعب البرنامج و GC سريع جدًا.
فيما يتعلق بالتحقق من الحدود/الفائض ، إذا كانت السرعة مهمة وكشفت الاختبار عن عدم حدوثها ، وأنت لا تخاطر بالحياة أو الملايين من خطأ أو عابر ، فهي مضيعة للوقت. ولكن إذا لم تتمكن من التخلص منها ، فمن المحتمل أن يكون وقتك أكثر قيمة في لغة يمكنك من خلالها البرمجة بسرعة أكبر.
إذا كنت تتوقع الحجم والاستخدام الجادين ، فمن المفيد تقسيم المهمة من خلال برنامج مسيطر وتخزين "تعريفات المهام" المخصصة في دليل مشترك مع ملف لكل مهام محاليل ، أو قاعدة بيانات. ثم يمكنك تشغيل حلوب لكل معالج (2 لكل وحدة المعالجة المركزية HT) ، أو أجهزة الكمبيوتر الشبكة. كن مرهقًا من هياكل قائمة الانتظار-من الصعب أن تصل إلى ذري "ذري". أنت تعرف عدد حلول المهام التي ستبدأ بها. لقد فعلت ذلك باستخدام أداة تصوير أقوم بتطويرها ، وكان الأمر أسهل بكثير مما كان متوقعًا ، وقد أجرح الإصدار السابق. زائد إذا كنت تستخدم متعددة العمليات من خلال مجال مشكلة القريب بشكل صحيح ، يمكنك تجنب عبء البرمجة الطفيفة إلى ذات الأهمية على MultiThreading. أو إقناع زملائك في العمل بأن أقواسك الرادي في المكان المناسب. سلام.