سؤال

تحديث مهم: راجع التحديث 5 في الأسفل ، لا توجد مشكلة في الأداء في ASP.NET MVC 3 ، هذه مشكلة معيارية

لقد صنعت مشروع Hello World بسيطًا في ASP.NET MVC2،3 ASPX و 3 Razor ومعارفهم. ما أراه هو:

System                  Requests per second
-------------------------------------------
asp.net mvc 2 ASPX                     4200
asp.net mvc 3 Beta 1 ASPX              3200
asp.net mvc 3 Beta 1 Razor             1700

ما الخطأ في Razor ، إنه بطيء جدًا؟

تحديث:لقد أعادت الاختبار. تستخدم جميع الدلائل الافتراضية الأربعة نفس المجموعة .NET 4 المدمجة في مجموعة تطبيقات الوضع المتكامل. تتم جميع المشاريع مع إضافة مشروع جديد فارغ X وإضافة صفحة واحدة بنص سطر واحد وبدون رمز. يتم تجميع جميع المواقع في وضع الإصدار. نظامي هو Windows 7 ، 4 GB I7 4 CORES. لقد قمت بإجراء الاختبار مرتين للتسخين مع IIS وهذه نتائج التشغيل الثاني. معلمات مقعد Apache: AB -N100000 -C1000 النتائج:

System         Requests per second   CPU Utilization
----------------------------------------------------
asp.net 4                     4780               43%
mcv 2                         4322               58%
mvc 3 beta 1 aspx             2324               54%
mvc 3 beta 1 razor            1615               54%

تحديث 2 أجاب سكوت غوثري في مدونته:

لم نقم بتحسين MVC3 بالكامل حتى الآن (عادة ما يكون هناك الكثير من ضبط ذاكرة التخزين المؤقت التي نقوم بها). نتوقع أن يكون Razor نفس الأداء مثل محرك View .aspx قبل إصداره أخيرًا.

System         Requests per second   CPU Utilization
----------------------------------------------------
mvc 3 rc1 razor               1960               54%
mvc 3 rc2 razor               2187               54%
mvc 3 rc2 aspx                4014               58%

تحديث 5 جميع الاختبارات التي أجريت في وضع الإصدار ولكن المشكلة كانت debug="true" في ملف الويب الخاص بي. ومن المثير للاهتمام كيف أنه يؤثر فقط على التحف على هذا المقياس. يجب أن يكون هذا في أذهاننا على عمليات النشر.

System         Requests per second   CPU Utilization
----------------------------------------------------
mvc 3 rc2 razor               3940               58%
mvc 3 rc2 aspx                4100               58%

بفضل فريق ASP.NET MVC ، عمل ممتاز!

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

المحلول

(إجابة جديدة للرد على أرقام RC2 الخاصة بك)

شكرا للأرقام المحدثة. بضع نقاط:

  1. تبدو أرقام ASPX جيدة ، بمعنى أننا نتوقع أن يكون MVC3 ASPX على قدم المساواة مع MVC2 ASPX (من المتوقع أن يكون هذا مثالًا أبطأ قليلاً)
  2. أرقام الحلاقة الخاصة بك تبدو مشبوهة. نحن نعلم أن Razor أبطأ قليلاً من ASPX المكافئ ، ومع ذلك ، يجب أن يكون الفرق أكبر من 5 ٪ -7 ٪. تشير أرقامك إلى أبطأ بنسبة 50 ٪ ، والتي ببساطة لا تتطابق مع نتائجنا. تحقق مما إذا كان المشروع يجمع في الإصدار وكان لديك debug="false" تعيين في web.config.
  3. استخدام وحدة المعالجة المركزية الخاصة بك هو مشبوهة بعض الشيء. مع 1000 طلب متزامن يجب استخدام وحدة المعالجة المركزية بنسبة 100 ٪. (حتى 8 طلبات متزامنة فقط يجب أن تكون كافية لأن لديك 8 نوى افتراضية)
  4. اختباراتك تعمل لمدة 20-25 ثانية. هذا قليلاً على الجانب المنخفض لأن انفجار النشاط القصيرة (1-2 ثانية) في مكان آخر في النظام يمكن أن يتخلص من نتائجك بشكل كبير.
  5. فيما يتعلق بالنقطة 4 ، هل قمت بتشغيل كل سيناريو مرة أو عدة مرات؟ هل ترى الكثير من التباين في النتائج؟ نظرًا لأن نظام التشغيل الخاص بك يقوم بأشياء أخرى في الخلفية ، فمن المعتاد رؤية نتائج مختلفة بين التشغيل.

نصائح أخرى

كيف قمت بالمعيار؟ هل تم نشر موقعك على IIS في إصدار الوضع؟ هل استخدمت <deployment retail="true" /> قسم في جهازك. تذكر أيضًا أن ASP.NET MVC 3 لا يزال قيد التطوير الثقيل ، لذلك لا يمكنك توقع أن يتم تحسينه بالكامل حتى الآن. على الأقل انتظر حتى يضرب RTM.

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