ما سمات المساعدة في وقت التشغيل .صافي الأداء ؟

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

  •  09-06-2019
  •  | 
  •  

سؤال

أنا أبحث عن سمات يمكنني استخدام لضمان أفضل وقت الأداء من أجل بلدي .صافي التطبيق من خلال إعطاء تلميحات محمل, مترجم JIT أو ngen.

على سبيل المثال لدينا DebuggableAttribute التي ينبغي أن لا تصحيح ولا تعطيل الأمثل للحصول على الأداء الأمثل.

[Debuggable(false, false)]

هل هناك أي أشخاص آخرين يجب أن أعرفه ؟

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

المحلول

Ecma-335 تحدد بعض CompilationRelaxations على استرخاء معالجة الاستثناء (أو ما يسمى e-استرخاء المكالمات) في المرفق واو "غير دقيقة أخطاء" ، لكنها لم تتعرض من قبل Microsoft.

على وجه التحديد CompilationRelaxations.RelaxedArrayExceptions و CompilationRelaxations.RelaxedNullReferenceException المذكورة هناك.

سيكون يضيع ما يحدث عندما كنت مجرد محاولة بعض الاعداد الصحيحه في CompilationRelaxationsAttribute هو المنشئ ;)

نصائح أخرى

و آخر:الحرفي السلاسل (سلاسل أعلن في التعليمات البرمجية المصدر) بشكل افتراضي المعتقلين في بركة لحفظ الذاكرة.

string s1 = "MyTest"; 
string s2 = new StringBuilder().Append("My").Append("Test").ToString(); 
string s3 = String.Intern(s2); 
Console.WriteLine((Object)s2==(Object)s1); // Different references.
Console.WriteLine((Object)s3==(Object)s1); // The same reference.

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

باستخدام CompilationRelaxationsAttribute يمكنك أن تقول مترجم JIT أن كنت حقا لا تريد أن المتدرب جميع سلاسل حرفية.

[assembly: CompilationRelaxations(CompilationRelaxations.NoStringInterning)]

لقد وجدت آخر: NeutralResourcesLanguageAttribute.وفقا هذا بلوق وظيفة فإنه يساعد على محمل في إيجاد قنوات الجمعيات أسرع طريق تحديد الثقافة إذا الحالية (محايد) الجمعية.

[NeutralResourcesLanguageAttribute("nl", UltimateResourceFallbackLocation.MainAssembly)]
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top