سؤال

هل من الأفضل استخدام تطبيق Ngen ASP.NET عندما نعلم أنه لن يتغير الكثير؟ أم هي الجبهة جيدة بما فيه الكفاية؟

السبب الوحيد الذي طلبت منه كان بسبب هذا المقال من جيفري ريختر في عام 2002 يقول:

وبالطبع، تعمل Microsoft بجد في تحسين CLR ومجموعة التحويل البرمجي JIT الخاص بها بحيث يتم تشغيلها بشكل أسرع، وتنتج رمز أكثر الأمثل، ويستخدم الذاكرة بشكل أكثر كفاءة. هذه التحسينات ستستغرق بعض الوقت. بالنسبة للمطورين الذين لا يستطيعون الانتظار، يتضمن إعادة توزيع .NET Fronse.

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

المحلول

لن يساعد Ngen فقط في وقت بدء التشغيل - لا يؤدي إلى تنفيذ التعليمات البرمجية بشكل أسرع مما كانت عليه بعد Jiting. في الواقع، أعتقد أن هناك بعض التحسينات التي ngen لا تفعل ولكن الجيش يفعل.

لذلك، السؤال الرئيسي هو: هل لديك مشكلة مع وقت بدء التشغيل؟ لا أعرف مقدار وقت بدء تشغيل تطبيق ASP.NET سيكون Jitting vs مقابل التكاليف الأخرى، فمن المحتمل أن تنظر إلى الرسوم البيانية مدير الأداء ل JIT لإخبارك بمقدار الوقت الذي يكلفك به حقا وبعد

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

نصائح أخرى

Ngen ليس الطريق للذهاب إلى ASP.NET - إنشاء .DLL في مجلد Bin ليس الخطوة الأخيرة - يتم تجميعها مرة أخرى باستخدام إعدادات الويب / Maching.config المطبقة في C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files مجلد. بدلا من Ngen، لتقليل وقت التحميل الأولي، استخدم أداة نشر موقع الويب أو aspnet_compiler.exe

لست متأكدا من أن الفائدة الأساسية ل Ngen هي أن تبدأ الوقت وحدها - إذا كان معاناة التطبيق من عالية "٪ وقت في جيت"، يتم سرد هذا كعلاج محتمل:http://msdn.microsoft.com/en-us/library/dd264972(VS.100).aspx..

ترتبط المناقشة ارتباطا وثيقا بسؤال مختلف حول كيفية يتم التخزين المؤقت رمز الجهاز JIT'D وأعد استخدامها؟

كنت أبحث في هذه الليلة وصادت فيما يلي:

لا يمكن لوقت تشغيل اللغة الشائع تحميل الصور التي تنشئها مع Ngen في مجال التطبيق المشترك. نظرا لأن التجميعات القياسية ASP.NET يتم تقاسمها ثم يتم تحميلها في مجال طلب مشترك، لا يمكنك استخدام Ngen.exe لتثبيتها في ذاكرة التخزين المؤقت للصورة الأصلية على الكمبيوتر المحلي.http://support.microsoft.com/kb/331979.

لست متأكدا إذا كان هذا يشير فقط إلى التجميعات المشار إليها من تطبيق ASP.NET أو التطبيق نفسه؟

نعم، هذا الفيديو يوتيوب يوضح ذلك في الواقع فيديو من Ngen.exe ضبط الأداء

ولكن كلمة الاختيار الحذر، والتحقق ثم قم بتنفيذها.

ngen يساعد وقت بدء التشغيل. على سبيل المثال، وثائق إطار الكيان يقول هذا عن الاستفادة من تشغيل ngen:

تظهر الملاحظات التجريبية أن الصور الأصلية لجمعيات وقت تشغيل EF يمكن أن تخفض ما بين 1 و 3 ثوان من وقت بدء تشغيل التطبيق.

السياق هو مجرد جمعيات إطار الكيان. من شن الإنجازات الأخرى توفر تسريع إضافي.

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